Мы используем htmlayout 3.3.1.43.
Во время многократной загрузки layout’a посредством функции HTMLayoutLoadHtml наблюдается утечка GDI объектов, а именно font’ов Verdana. Мы не используем этот шрифт вообще, его использует htmlayout. Стек из дампа с утечкой:
На самой последней версии (3.3.2.1), скачанной с terrainformatica.com, утечка сохраняется.
Если кому-то интересен полный дамп, я могу его выслать или выложить.
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, eec, Вы писали:
CS>There is no HFONT leak in htmlayout. Htmlayout maintains static table of fonts. Once created font will live in that table until process shutdown.
CS>Cheers.
5000 вызовов HTMLayoutLoadHtml.
Данные из дампа:
OBJ_FONT=9770
Handle: 0xaa0a05ce Type: OBJ_FONT { 0x0, 0xe688d08 } Height=-13 Family=Verdana
Здравствуйте, eec, Вы писали:
eec>Здравствуйте, c-smile, Вы писали:
CS>>Здравствуйте, eec, Вы писали:
CS>>There is no HFONT leak in htmlayout. Htmlayout maintains static table of fonts. Once created font will live in that table until process shutdown.
CS>>Cheers.
eec>5000 вызовов HTMLayoutLoadHtml. eec>Данные из дампа: eec>OBJ_FONT=9770 eec>Handle: 0xaa0a05ce Type: OBJ_FONT { 0x0, 0xe688d08 } Height=-13 Family=Verdana
Что такое "Данные из дампа:"?
Какая версия htmlayout?
В любом случае:
Запускаем browse.exe, грузим в него тестовый документ.
Запускаем Process Explorer, открываем tab Properties / Performance на browse.exe.
И жмем F5 в browse.exe — документ перегружается. Наблюдаем GDI handles counter.
Если при этом ты наблюдаешь рост GDI handles counter, то я хотел бы увидеть тот документ что ты загрузил.
Re[4]: Утечка GDI объектов в htmlayout.
От:
Аноним
Дата:
04.05.10 09:25
Оценка:
Здравствуйте, c-smile, Вы писали:
CS>Что такое "Данные из дампа:"?
Наша дампилка, которая позволяет расшифровать GDI объекты на манер WinDBG.
Могу выслать полный дамп WinDBG.
CS>Какая версия htmlayout?
Мы используем HTMLayout 3.3.1.43. На версии 3.3.2.1 ситуация аналогичная.
CS>В любом случае:
CS>Запускаем browse.exe, грузим в него тестовый документ. CS>Запускаем Process Explorer, открываем tab Properties / Performance на browse.exe. CS>И жмем F5 в browse.exe — документ перегружается. Наблюдаем GDI handles counter. CS>Если при этом ты наблюдаешь рост GDI handles counter, то я хотел бы увидеть тот документ что ты загрузил.
Мы используем MFC, поэтому я взял mfc_browse.exe.
В документе прописаны виджеты, которые mfc_browse никак не обрабатывает, поэтому я немного изменил код:
2. Скачать архив, с изменённым mfc_browse (http://ifolder.ru/17687579). Внутри также находится файл 1x1.htm при загрузке которого через Open, нарастает количество GDI объектов.
eec>2. Скачать архив, с изменённым mfc_browse (http://ifolder.ru/17687579). Внутри также находится файл 1x1.htm при загрузке которого через Open, нарастает количество GDI объектов.
Ага, увидел. Спасибо за пример. Фикс будет в следующем билде.