alex_007: (Default)
[personal profile] alex_007
Волею судеб приходится писать проги под виндовс. Проблемка сейчас случилась довольно забавная:
Написал прогу. Запускаю, течет память (причем хорошо так течет..). Берем профайлер, который контролирует создание/удаление объектов, - сообщает у тебя все ок, никаких утечек...
Ладно, наверное, это не утечки памяти, а просто накопление. Берем другой профайлер, который проверяет количество обектов/ресурсов/пр и занимаемую ими память, - говорит все ок, ничего не накапливается все лишнее освобождается вовремя... Ну как же, я же вижу по таксменеджеру, что используемая и виртуальная память растет!?!?!
Хорошо, может это таскменеджер глючит, запущу ка я свою прожку на долгое время и посмотрим что будет. Через 6 часов прога сообщает, что недостаточно памяти для создания треда. Смотрим памяти еще 400 метров. По таскменеджеру прога занимает 140метров реальной и 209 метров виртуальной памяти (при запуске занимает 19 и 88 метров соответственно).

Еще более странно то, что при запуске на других машинах (где операционки NT4/2000/XP) все ок - ничего никуда не течет... Да еб %$^# ^%$# %#$$# %#$^*&^% !!!!!!!!! Где справедливость? Я же ничего со своей операционкой не делал, ничего лишнего не стоит, стоят все патчи и сервис паки от XP. Никаких "отключений лишних сервисов/оптимизаций/пр". Причем не очень давно я ее ставил с нуля на чистый комп. Машина работает 24/7 и все ок, ничего больше не течет. Иногда аптайм доходил до месяца... Я в ауте...

Date: 2007-02-22 10:52 am (UTC)
From: [identity profile] fenikso.livejournal.com
1. Повтори эксперимент в чистой операционке в VMware - без вещей типа файрволл и т.п.

2. Скорее всего, что-то таки течёт :) Или не течёт, а просто держится дольше -- ты можешь посмотреть под что ушли 140 и 209 метров?

Date: 2007-02-22 07:01 pm (UTC)
ext_957162: (Default)
From: [identity profile] alex-007.livejournal.com
>1. Повтори эксперимент в чистой операционке в VMware - без вещей типа файрволл и т.п.
см. последний абзац. Да, в VMWare тоже запускал - не течет... Самое прикольное, что я вообще отвечал все функции - и сетевую(просто заглушку ставил) и убрал перерисовку приложения(т.е. просто отключил графику) - результат тот же.

Да правда я забыл сказать, что приложение использует очень много тредов (в пиковые секунды активности до 80-90 тредов)

>2. Скорее всего, что-то таки течёт :) Или не течёт, а просто держится дольше -- ты можешь посмотреть под что ушли 140 и 209 метров?
Не течет, проверенно профайлерами(и не одним). Было предположение, что происходит накопление памяти, но на что она уходит ни один профайлер не указал.

Date: 2007-02-22 07:22 pm (UTC)
From: [identity profile] fenikso.livejournal.com
А ты можешь усечь приложение ещё дальше? Условно говоря, до менеджера тредов + минимум логики? Будет ли повторяться.

Ещё вариант - не все ресурсы связанные с тредами отдаются системе.... Может такое быть?

Date: 2007-02-22 07:45 pm (UTC)
ext_957162: (Default)
From: [identity profile] alex-007.livejournal.com
Дык так оно и сделано(т.е. написано просто консольное приложение, которое только и делает что создает треды они получают отлуп от заглушки (типа все плохо автомат не отвечает(это прога с которой связываемся по сети)) тред об этом сообщает выше и отваливается. все сообщения от треда пишутся просто в консоль.

>Ещё вариант - не все ресурсы связанные с тредами отдаются системе.... Может такое быть?
А почему на других машинах (5 штук + моя виртуальная) все ок... В общем у меня есть еще один выход - забекапить существующую операционку - переставиться с нуля и попробовать так. Правда тут все равно возникает вопрос - за что винда невзлюбила именно мое приложение, другие (те же автоматы ) работают нормально...

Profile

alex_007: (Default)
alex_007

March 2014

S M T W T F S
      1
2345678
9101112131415
1617 1819202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 15th, 2025 07:13 pm
Powered by Dreamwidth Studios