2015-02-02 3 views
0


Приложение мое работает нормально с некоторыми проблемами памяти, б/у ValueHolder Interface (косвенный) для ленивый погрузка большой размер.Родной сборщик, имеющий большой размер лица

Например:

class Customer 
{ 
    private Long id; 
    private String name; 
    private String lastName; 
    private ValueHolderInterface customerAddress = new ValueHolder(); 
    // getter...setter... 
} 
class address{ 
    private Long id; 
    private String city; 
    private String country; 
} 

объект Клиент имеет CustomerAddresValueHolderInterface, показывая 20MB даже CustomerAddress имеет несколько строковых свойств

Logging показывает каждому размер имущества.
Клиент [ID = 24 байтов, имя = 50 байтов, Firstname = 80 байт, LastName = 80 байт, customerAddress = 20625584 байт, customerAddress = 20625584 байт]

запрос:
является ValueHolder ест память?
есть ли способ избавиться от проблемы?
является TopLink применения какого-то обкатки времени ткачества здесь

благодаря

ответ

0

ValueHolder не использовать очень много памяти, вероятно, меньше, чем 100 байт, конечно, не 20МБЫ.

Не видя, как настроены ваши сопоставления, я полагаю, что у вас есть сопоставление «один ко многим» между клиентом и адресом, но ваши сопоставления с внешним ключом настроены неправильно, поэтому TopLink делает декартово соединяйте и загружайте каждый адрес в своей базе данных для каждого клиента.