powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / EclipseLink память
9 сообщений из 9, страница 1 из 1
EclipseLink память
    #38456499
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрий день
Когда я пишу много сущностей в БД через EclipseLink то очень сильно забиваеться память, по том вона не освобождаеться по кане перегрузить Glassfish

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
@Named
@RequestScoped
public class MainController implements Serializable {

    @EJB
    private ParentFacade parentFacade;
   
    public void createParentList(String count) {
        System.out.println("-------Start---------");
        long start = System.currentTimeMillis();
        int countInt = Integer.valueOf(count).intValue();
        parentFacade.createList(ParentFactory.createList(countInt));
        long end = System.currentTimeMillis();
        System.out.println("Time: " + (end - start) / 1000);
        System.out.println("-------Finish---------");
    }
 
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@Stateless
public class ParentFacade extends AbstractFacade<Parent> {

    @PersistenceContext(unitName = "EclipceLinkWebPU")
    private EntityManager em;
    
    @Override
    protected EntityManager getEntityManager() {
        return em;
    }
    
    public ParentFacade() {
        super(Parent.class);
    }
    
    public void createList(List<Parent> list) {
        for (Parent p : list) {
            this.create(p);
        }
        this.getEntityManager().flush();
        this.getEntityManager().getEntityManagerFactory().getCache().evictAll();
    }
}



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="EclipceLinkWebPU" transaction-type="JTA">
    <jta-data-source>eclipcelink_web</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
     <!-- <property name="eclipselink.flush-clear.cache" value="Drop"/>
      <property name="eclipselink.cache.shared.default" value="false"/>-->
    </properties>
  </persistence-unit>
</persistence>



Кеш чистил, пробовал System.gc() толку нет
...
Рейтинг: 0 / 0
EclipseLink память
    #38456539
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glassfish и EclipseLink друзья на веки. На нормальных сервера аналогичная картина? Дамп памяти снять не пробовали?
...
Рейтинг: 0 / 0
EclipseLink память
    #38456553
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Java VisualVM

Если знять дамп з Glassfish, то в памяти только один инстанс core.model.Parent
Вставлял несколько раз по 100 000 записей, память java выросла з 270mb 530mb
...
Рейтинг: 0 / 0
EclipseLink память
    #38456562
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

В нас только Glassfish 3.1.2 с подержкой Java EE, на других серверах не пробовал
...
Рейтинг: 0 / 0
EclipseLink память
    #38456567
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis111111Если знять дамп з Glassfish, то в памяти только один инстанс core.model.Parent
Вставлял несколько раз по 100 000 записей, память java выросла з 270mb 530mb
Memory Profiler в VisualVM покажет за счет каких классов выросла куча. Может они все в кеше второго уровня осели?
...
Рейтинг: 0 / 0
EclipseLink память
    #38456900
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Посмотрел в Memory Profiler в VisualVM
Profiling result

Трасировка на Object

Я в этом к сожалению, не очень разбираюсь но что-то удерживает эти Object и Char
...
Рейтинг: 0 / 0
EclipseLink память
    #38456961
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ээ, 2 Мб это в рамках погрешности.
...
Рейтинг: 0 / 0
EclipseLink память
    #38457923
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
denis111111,

Вобщем частично решил проблему памяти.
Например когда-то я писал сразу 200 000 обьектов в БД Теперь попробавал писать по 10 000 и после очищать список.
Правда меня не устраивает время записи...
Вобще-то так нормально писать списки?
Код: java
1.
2.
3.
4.
5.
  public void createList(List<Parent> list) {
        for (Parent p : list) {
            this.create(p);
        }
    }
...
Рейтинг: 0 / 0
EclipseLink память
    #38457935
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / EclipseLink память
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]