Вверх ↑
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
#106: 2007-04-26 13:28:11 ЛС | профиль | цитата
nesco, утечка это постоянное увеличение объема памяти, занимаемой программой при многократном добавление и уничтожение компонента. Оценивать объем нужно через мат ожидание(грубо говоря средний объем за некоторый промежуток времени), а не по мгновенному значению.
Лучший тест это добавление(##Add) по 100-1000 элементов в динамический контейнер и его полная очистка(##Clear).
карма: 27
0
Ответов: 9906
Рейтинг: 351
#107: 2007-04-26 13:34:14 ЛС | профиль | цитата
Если меньше 5000, то я тестам не очень доверяю
А лучше - >10000
карма: 9

0
Ответов: 5446
Рейтинг: 323
#108: 2007-04-26 13:50:43 ЛС | профиль | цитата
nesco, вот смотри - компонент Commutator:


 Содержимое папки WorkHiAsmElements\_Done\_Commutator\_Commutator
25.02.2006 14:47 35 Commutator.hic
25.02.2006 14:47 10 Commutator.huc
25.02.2006 14:35 1 886 Commutator.ico
17.04.2006 02:16 350 Commutator.ini
10.10.2006 23:13 3 620 Commutator.sha
25.02.2006 21:52 836 hiCommutator.pas

Запускаем его в DynaTest v2, имеем:
* 1й СТОП - на 3й итерации, -4 Кб памяти
* 2й СТОП - на 64й итерациии -12 Кб
* 3й СТОП - на 71й итерации, -8 Кб

Но это - моя методика. Я, например, не хочу и не могу долго (10000 итерация и более) ждать - боюсь, ноут накроется раньше времени, так как тест больше похож на burn-тест системы охлаждения.
карма: 1

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#109: 2007-04-26 13:56:37 ЛС | профиль | цитата
Dilma писал(а):
утечка это постоянное увеличение объема памяти, занимаемой программой при многократном добавление и уничтожение компонента
Это я прекрасно понимаю. Это не мне надо обяъяснять, а iarspider'y, чтобы он правильно подходил к тестированию и переделал тестовую программу под большее количество циклов, а не окультно подходил к присвоению ярлыка "динамической некорректности".

[size=-2]------ Добавлено в 13:56
iarspider, да этот компонент по определению жрать ничего не может. У меня результат обратный, то "-", то "+".
карма: 22

0
Ответов: 5446
Рейтинг: 323
#110: 2007-04-26 14:02:03 ЛС | профиль | цитата
Ладно, тогда давайте так: я добавлю 2 категории "Динамич. тест не проводился" и "Утечки памяти незначительны" (а старую назову "Существенные утечки памяти"), и припишу всем компонентам в базе "Динам. тест не проводился", и заново (по уточнённой методике Галкова-Дилмы) проведу тест.

Заранее публикую правила:
1) Тест проводится на 10000 итераций
2) Замеряется объём свободной памяти в начале и в конце теста
3) Если на какой-то итерации утечка составит > 1024 Кб, тест автоматически считается проваленным (а такие компоненты есть - AnalogGauge, например).

[size=-2]------ Добавлено в 14:02
А главное - я стараюсь быть максимально объективным, и вообще не смотрю, кто автор какого компонента!!!!!
карма: 1

0
Ответов: 9906
Рейтинг: 351
#111: 2007-04-26 14:17:25 ЛС | профиль | цитата
iarspider писал(а):
а такие компоненты есть

поставь любому непустой хинт и посмотри

[size=-2]------ Добавлено в 14:17
А вообще-то мяса второй свежести не бывает: утечки либо есть, либо их нет
карма: 9

0
Ответов: 5446
Рейтинг: 323
#112: 2007-04-26 14:17:28 ЛС | профиль | цитата
Galkov, я в курсе (в смысле, читаю эту тему)
карма: 1

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#113: 2007-04-26 14:36:45 ЛС | профиль | цитата
iarspider писал(а):
я стараюсь быть максимально объективным, и вообще не смотрю, кто автор какого компонента

А автор то тут причем? Загляни в код и посмотри -- может компонент жрать ресурс, или не может и на базе чего сделан -- есть у него внешний юнит, или нет.
карма: 22

0
Ответов: 5446
Рейтинг: 323
#114: 2007-04-26 14:38:55 ЛС | профиль | цитата
nesco, дык ты же вроде громко возмущался - дескать, всем моим компонентам "горчичник" влепили, разве не так? Во, цитирую:
nesco писал(а):

iarspider, ты это чего на мои компоненты желтую карточку повесил.

Вот я и говорю - я по своей методе провёл тест, обнаружил утечку, что и зафиксировал в базе.
Теперь, когда Галков пояснил, что считать проваленным тестом, а что - флуктуацией.
карма: 1

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#115: 2007-04-26 14:44:23 ЛС | профиль | цитата
iarspider, очень странно. Я значит возмутлся, а Dilma по поводу Memory -- нет. Я же говорю, что память то в минус (-4..-12), то в плюс лезет (+4...+20). Мало количество итераций для теста.
карма: 22

0
Ответов: 5446
Рейтинг: 323
#116: 2007-04-26 14:45:41 ЛС | профиль | цитата
nesco, давай завязывать, а то нам Галков каждому по горчичнику влепит. Договорились же вроде, что те результаты - фигня, выбрасываем, переделываем.
карма: 1

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#117: 2007-04-26 14:47:31 ЛС | профиль | цитата
iarspider, ну давай завяжем
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#118: 2007-04-26 15:11:47 ЛС | профиль | цитата
iarspider писал(а):
Запускаем его в DynaTest v2, имеем:
* 1й СТОП - на 3й итерации, -4 Кб памяти
* 2й СТОП - на 64й итерациии -12 Кб
* 3й СТОП - на 71й итерации, -8 Кб

это действительно не похоже на корректный тест С таким количеством итераций тестироание можно проводить разве что в ДОСе только. В Windows из-за большого количества оптимизационных алгоритмов на всех уровнях работы приложения нужно делать гораздо больше итераций.
карма: 27
0
Ответов: 5446
Рейтинг: 323
#119: 2007-04-26 17:40:15 ЛС | профиль | цитата
Dilma, дык понял уже... Исправляюсь...


[size=-2]------ Добавлено в 16:28
Чем дальше в лес... Если взять мой тест, опустошить "полигон", отключить автостоп, и на 50000 прервать - то получим не ноль! (последний результат: -164 Кб). Однако если использовать точку Virtual_free (а её, судя по MSDN, и надо использовать), то получаем ноль.

[size=-2]------ Добавлено в 17:34
Так, видимо это и есть правильный метод. Выкладываю новую версию DynaTest-а.

[size=-2]------ Добавлено в 17:40
Перетестирую текущий список сам.
карма: 1

0
файлы: 1DynaTest_v3.zip [3.8KB] [345]
Ответов: 16884
Рейтинг: 1239
#120: 2007-04-26 17:47:19 ЛС | профиль | цитата
Элемент Commutator не найден!

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)