nesco, утечка это постоянное увеличение объема памяти, занимаемой программой при многократном добавление и уничтожение компонента. Оценивать объем нужно через мат ожидание(грубо говоря средний объем за некоторый промежуток времени), а не по мгновенному значению.
Лучший тест это добавление(##Add) по 100-1000 элементов в динамический контейнер и его полная очистка(##Clear).
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Если меньше 5000, то я тестам не очень доверяю
А лучше - >10000 |
|||
карма: 9 |
|
Ответов: 5446
Рейтинг: 323
|
|||
nesco, вот смотри - компонент Commutator:
Запускаем его в DynaTest v2, имеем: * 1й СТОП - на 3й итерации, -4 Кб памяти * 2й СТОП - на 64й итерациии -12 Кб * 3й СТОП - на 71й итерации, -8 Кб Но это - моя методика. Я, например, не хочу и не могу долго (10000 итерация и более) ждать - боюсь, ноут накроется раньше времени, так как тест больше похож на burn-тест системы охлаждения. |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Dilma писал(а): утечка это постоянное увеличение объема памяти, занимаемой программой при многократном добавление и уничтожение компонента[size=-2]------ Добавлено в 13:56 iarspider, да этот компонент по определению жрать ничего не может. У меня результат обратный, то "-", то "+". |
|||
карма: 22 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Ладно, тогда давайте так: я добавлю 2 категории "Динамич. тест не проводился" и "Утечки памяти незначительны" (а старую назову "Существенные утечки памяти"), и припишу всем компонентам в базе "Динам. тест не проводился", и заново (по уточнённой методике Галкова-Дилмы) проведу тест.
Заранее публикую правила: 1) Тест проводится на 10000 итераций 2) Замеряется объём свободной памяти в начале и в конце теста 3) Если на какой-то итерации утечка составит > 1024 Кб, тест автоматически считается проваленным (а такие компоненты есть - AnalogGauge, например). [size=-2]------ Добавлено в 14:02 А главное - я стараюсь быть максимально объективным, и вообще не смотрю, кто автор какого компонента!!!!! |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
iarspider писал(а): а такие компоненты естьпоставь любому непустой хинт и посмотри [size=-2]------ Добавлено в 14:17 А вообще-то мяса второй свежести не бывает: утечки либо есть, либо их нет |
|||
карма: 9 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Galkov, я в курсе (в смысле, читаю эту тему)
|
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
iarspider писал(а): я стараюсь быть максимально объективным, и вообще не смотрю, кто автор какого компонентаА автор то тут причем? Загляни в код и посмотри -- может компонент жрать ресурс, или не может и на базе чего сделан -- есть у него внешний юнит, или нет. |
|||
карма: 22 |
|
Ответов: 5446
Рейтинг: 323
|
|||
nesco, дык ты же вроде громко возмущался - дескать, всем моим компонентам "горчичник" влепили, разве не так? Во, цитирую:
nesco писал(а):
iarspider, ты это чего на мои компоненты желтую карточку повесил. Вот я и говорю - я по своей методе провёл тест, обнаружил утечку, что и зафиксировал в базе. Теперь, когда Галков пояснил, что считать проваленным тестом, а что - флуктуацией. |
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
iarspider, очень странно. Я значит возмутлся, а Dilma по поводу Memory -- нет. Я же говорю, что память то в минус (-4..-12), то в плюс лезет (+4...+20). Мало количество итераций для теста.
|
|||
карма: 22 |
|
Ответов: 5446
Рейтинг: 323
|
|||
nesco, давай завязывать, а то нам Галков каждому по горчичнику влепит. Договорились же вроде, что те результаты - фигня, выбрасываем, переделываем.
|
|||
карма: 1 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
iarspider, ну давай завяжем
|
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
iarspider писал(а): Запускаем его в DynaTest v2, имеем:
* 1й СТОП - на 3й итерации, -4 Кб памяти * 2й СТОП - на 64й итерациии -12 Кб * 3й СТОП - на 71й итерации, -8 Кб это действительно не похоже на корректный тест С таким количеством итераций тестироание можно проводить разве что в ДОСе только. В Windows из-за большого количества оптимизационных алгоритмов на всех уровнях работы приложения нужно делать гораздо больше итераций. |
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Dilma, дык понял уже... Исправляюсь...
[size=-2]------ Добавлено в 16:28 Чем дальше в лес... Если взять мой тест, опустошить "полигон", отключить автостоп, и на 50000 прервать - то получим не ноль! (последний результат: -164 Кб). Однако если использовать точку Virtual_free (а её, судя по MSDN, и надо использовать), то получаем ноль. [size=-2]------ Добавлено в 17:34 Так, видимо это и есть правильный метод. Выкладываю новую версию DynaTest-а. [size=-2]------ Добавлено в 17:40 Перетестирую текущий список сам. |
|||
карма: 1 |
| ||
файлы: 1 | DynaTest_v3.zip [3.8KB] [337] |
Ответов: 16884
Рейтинг: 1239
|
|||
Элемент Commutator не найден! |
|||
карма: 25 |
|