2014-02-17 6 views
0

Я новичок в анализе памяти на Java.При анализе памяти в Java TreeMap находится внутри объекта

У меня есть пользовательский класс с именем ExecutionReportMessage, объектом которого стоило мне 25К памяти:

enter image description here

Когда я смотрю на объект в анализе памяти в Eclipse, я обнаружил, что есть TreeMap Структура внутри, на которую приходится наибольший размер всего объекта.

Вот мой вопрос:

  1. Где делает TreeMap взялось? У меня нет TreeMap Структура в определении класса.

  2. Я хотел бы уменьшить размер объекта как можно меньше. Любой возможный способ сделать это?

+0

Это может быть просто из какой-то библиотеки, которую вы используете в своем проекте, а не непосредственно из собственного письменного кода. – ecbrodie

+0

У вас есть карта в любом месте? Это может быть только конкретная реализация, идущая в этот интерфейс «Карта». – Makoto

ответ

0

1) Похоже, что он находится внутри объекта quickfix.fix42.ExecutionReport .. ??

UPDATE: Это на самом деле внутри quickfix.fix42.ExecutionReport, который по наследству расширяет quickfix.FieldMap класс, который имеет два TreeMaps

2) Удалите ExecutionReport из вашего исключения и просто хранить поля, нужно от него.

+0

Да, это настраиваемый объект quickfix.fix42.ExecutionReport. Но я видел реализацию ExecutionReport, ни одна TreeMap не определена внутри. – DerekY

+0

Я не слишком хорошо знаком с quickfix, но кажется, что класс quickfix.fix42.ExecutionReport может содержать много полей внутри, и почему бы не использовать TreeMap для этого? Я посмотрел на источник 1.5.3, но похоже, что все сообщения генерируются кодом? Можете ли вы указать мне исходный код, из которого вы изложите свое предложение? –

+0

Я думаю, вам нужно следовать руководству на веб-сайте, чтобы выполнить задачу в файле ant для генерации ExecutionReport.java – DerekY

0

С трассировки стека, TreeMap s используются внутренним путем QuickFIX (в данном случае, классом ExecutionReport). Чтобы лучше понять, что происходит, вам придется посмотреть исходный код QuickFIX.

+0

У меня есть исходники, но не могу найти TreeMap в классе ExecutionReport – DerekY

Смежные вопросы