|
|
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Прошу помочь понять в чем проблема. Нижеприведенная функция крутится в таймере с интервалом 1сек и достает текущий адрес папки из проводника. Если смотреть в диспетчере, то с каждой секундой потребляемая память увеличивается на 50-60Кб. Почему так происходит и как это предотвратить? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 17:59 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
garun Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Освобождай WebBrowserApp на каждой итерации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:11 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
ma1tusgarun Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Освобождай WebBrowserApp на каждой итерации. Проблема не в этом. Если убрать всё, оставив только вот эту конструкцию, то утечка всё равно продолжается: Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:19 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Как я понимаю ShellWindows:=nil не помогает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:33 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
garunкрутится в таймере с интервалом 1секобязательно создавать ежесекундно ? один раз создать и использовать - не вариант ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:51 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
rgreatКак я понимаю ShellWindows:=nil не помогает? Неа :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:52 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Вызови .Release явно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:55 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Ghost Writergarunкрутится в таймере с интервалом 1секобязательно создавать ежесекундно ? один раз создать и использовать - не вариант ? Обязательно. Кстати, если заменить это: Код: pascal 1. На это: Код: pascal 1. То код будет тоже работать, но утечка никуда не девается. Отсюда вопрос - как освободить ShellWindows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:56 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
garunОбязательнои почему же ? создать экземпляр и использовать. только если вдруг будет завершен процесс explorer.exe, то придется отлавливать исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 19:58 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Кстати, может раз ShellWindows это список, то оно так криво реализовано что элементы надо поштучно освобождать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 20:01 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
rgreatВызови .Release явно. Как? у IShellWindows нет метода Release Вернее есть ._Release, но он не помогает, ни так WndIface._Release, ни так ShellWindows._Release Ghost Writerи почему же ? создать экземпляр и использовать. только если вдруг будет завершен процесс explorer.exe, то придется отлавливать исключения. Потому что мне постоянно нужна актуальная информация о том какая папка открыта в проводнике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 20:06 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
garun, уговаривать тебя ? Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 20:08 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Ghost Writergarun, уговаривать тебя ? Код: pascal 1. 2. 3. 4. 5. 6. Сделал так, утечка осталась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 20:25 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
garunGhost Writergarun, уговаривать тебя ? Код: pascal 1. 2. 3. 4. 5. 6. Сделал так, утечка осталась Хотя изменения всё же есть! Теперь память увеличивается только если активно окно проводника. Если нет - то не увеличивается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 20:40 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
протестировал твой код ... в делфи 7 потребляемая память практически не росла. если и увеличивалась, то через минуту освобождалась. в Delphi 10.2 в целом также, за 15 минут в итоге выросла примерно на 150 Кб. особенно прирост заметил когда запускал IE. но никаких 50-60 Кб в секунду не наблюдаю. а много у тебя окон открыто ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 20:50 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Ghost Writerпротестировал твой код ... в делфи 7 потребляемая память практически не росла. если и увеличивалась, то через минуту освобождалась. в Delphi 10.2 в целом также, за 15 минут в итоге выросла примерно на 150 Кб. особенно прирост заметил когда запускал IE. но никаких 50-60 Кб в секунду не наблюдаю. а много у тебя окон открыто ? У меня вот так: https://c.radikal.ru/c23/1910/2f/7d41d0a21f49.gif Windows 10 x64, Delphi 10.3 Rio Открыто одно окно проводника, браузер, Delphi и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 21:01 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Windows 10 x64, Delphi 10.3.2 Rio Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. Таймер поставил 50 мс Скакал по папкам секунд 30. Память стабильна и выше 3556 (Выделенная память) не поднимается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2019, 23:03 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
X-Cite, Спасибо, я затестил ваш код, но проблема осталась. За минуту с 3.5Мб постепенно наросло +15Мб и продолжает расти. Что я делаю не так? Создал уже новый проект, скопировал ваш код в точности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 09:40 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
В проекте ReportMemoryLeaksOnShutdown включить и посмотреть, что по выходу напишет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 09:46 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Сейчас проверил на виртуалке с Windows 7 - код от X-Cite отрабатывает превосходно, память в диспетчере стоит на месте.. что за ерунда.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 09:49 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
garunСейчас проверил на виртуалке с Windows 7 - код от X-Cite отрабатывает превосходно, память в диспетчере стоит на месте.. что за ерунда.... Вирусы? Или какие-нибудь сторонние dll-ки?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 09:54 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Протестировал на win7 / win10 полет нормальный. Если у вас приложение с нуля и только этот код, то смотрите следующие варианты 1) Версия Delphi на которой тестировал 26.0.34749.6593 2) Версия ОС Win10 Pro 1903 Сборка 18362.356 3) Установленные в Delphi различные эксперты, FastMM не из коробки, Jedi и прочее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 09:56 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
garun, а с чем ты вообще борешься? Приложение через сутки непрерывной работы падает, система виснет - что за беда у тебя, конкретно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 10:03 |
|
||
|
Помогите найти утечку
|
|||
|---|---|---|---|
|
#18+
Не, я понимаю, можно исследовать методом тыка, когда других способов просто нет, но утечку-то диагностировать элементарно! Инженеры блин, технари, аналитическое мышление... ReportMemoryLeaksOnShutdown или подключить FastMM в режиме FullDebugMode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2019, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39879556&tid=2038930]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 470ms |

| 0 / 0 |
