|
|
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
Уважаемые форумчане, решил дико юзать сей словарь и у меня возникло предположение, что память немножечко не чиститься. Стандартными средствами FastMM ничего не находиться, так как при Free все чиститься, а в процессе работы со словарем память немного растет. Размер памяти я смотрел 3 способами: 1. диспетчер задач 2. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 3. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вот сам словарь Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. И работа с ним Код: 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. Провел небольшой тест (описание шага, диспетчер задач, Размер ОП, Другой ОП) 0. Начало 3 172 3 822 1. Добавил 5 млн (button1) 569 324 кБ 557 567706 2. Удалил 2 млн (button2) 335 388 кБ 329 331686 3. Добавил 3 млн (button1) 663 352 кБ 649 661589 4. Удалил 6 млн (button1) 4 436 8 851 Откуда разница? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 16:17 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
cptngrbОткуда разница? FastMM не обязан возвращать всю занятую у ОС память обратно до завершения работы приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 16:19 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
Провел небольшой тест описание шага диспетчер задач Размер ОП Другой ОП0. Начало 3 172 3 822 1. Добавил 5 млн (button1) 569 324 кБ 557 5677062. Удалил 2 млн (button2) 335 388 кБ 329 3316863. Добавил 3 млн (button1) 663 352 кБ 649 6615894. Удалил 6 млн (button2) 4 436 8 851 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 16:21 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
alekcvp, FastMM я использую в качестве поиска утечек выставляя ReportMemoryLeaksOnShowdown:= True ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 16:23 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
cptngrbПровел небольшой тест Для чистоты эксперимента ещё на Clear и Free сделай кнопки. cptngrbalekcvp, FastMM я использую в качестве поиска утечек выставляя ReportMemoryLeaksOnShowdown:= True Не суть, имелся в виду делфийский менеджер памяти в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 16:31 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
alekcvp, Clear и Free ситуацию не изменили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 17:10 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
cptngrbОткуда разница? У менеджера памяти свои внутренние пулы, он их не обязан освобождать. Они будут освобождены при завершении приложения. Такие одноразовые замеры ничего не показывают, утечку нужно смотреть в динамике, на продолжительном временном отрезке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 18:02 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
...да, опрашивая непосредственно менеджер (твой третий способ) утечку зафиксировать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 18:05 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
Надо эти buttonclick закольцевать и поставить хотя бы на часик молотиться. Вот тогда уже и смотреть утечки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 18:48 |
|
||
|
TObjectDictionary. Проблемы с памятью
|
|||
|---|---|---|---|
|
#18+
cptngrb, Кстати, сдаётся мне, что тут у вас ошибка: Код: pascal 1. 2. http://docwiki.embarcadero.com/Libraries/Berlin/en/System.TSmallBlockTypeState Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Т.е. надо суммировать только ReservedAddressSpace, а не все 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2018, 19:51 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2040006]: |
0ms |
get settings: |
10ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 485ms |

| 0 / 0 |
