Страница 1 из 2

Скорость работы

Добавлено: 02 дек 2007, 17:39
Wormkeeper
Есть такая проблемма. Сам решить не могу её. Программа на дэльфе 7. В программе основная процедура ведёт некоторые рассчёты. Эта процедура запускается порядка 10000 раз. Можно сказать, что входные параметры у неё одинаковы. Внутри процедуры нет никаких мэмори стримов, ссылок и прочего, способствующего утечкам памяти. Выделяются только простые переменные, типов integer, real, string. Но тем неменее, с каждым циклом процедура начинает работать всё медленнее, к концу работы программы каждая обработка может занимать на порядок больше времени, чем в начале.
С чем это может быть связанно? Дэльфю я особо хорошо не знаю, посути кодю, как кодил бы в паскале. Может там есть какая-нибудь команда, которая очищает область памяти где работала процедура и её запускать после каждого вызова надо?

Re: Скорость работы

Добавлено: 02 дек 2007, 17:49
Duncon
Утечкам памяти могут способствовать только кривые руки.
А вопрос расчитан на телепата.

Re: Скорость работы

Добавлено: 02 дек 2007, 17:57
Wormkeeper
Ладно. Можно поставить вопрос более конкретно.
Если я вызываю процедуру, внутри которой переменные объявляются только как integer, real, string, или массивы из них, причём задавая на вход процедуры одинаковый набор данных, то почему скорость исполнения процедуры замедляется при каждом её последующем вызове.
P.S.
раду буду услышать любые возможные теории)

Re: Скорость работы

Добавлено: 02 дек 2007, 20:33
Duncon
Лучше покажи код.

Re: Скорость работы

Добавлено: 02 дек 2007, 20:36
Wormkeeper
там процедура порядка 700 строчек) к тому же она сопрягается с кучей остальных кусков проги)
Я курсовик пишу)

Re: Скорость работы

Добавлено: 02 дек 2007, 21:44
somewhere
Да покажи код, если действительно хочешь помощи. Без него все равно никто ничего не скажет

Re: Скорость работы

Добавлено: 03 дек 2007, 03:52
Insane
Если уж не хочешь показывать код и хочешь определить факт утечки памяти, три кнопки и дыбай в поле "память" :)

Re: Скорость работы

Добавлено: 03 дек 2007, 11:59
Игорь Акопян
вот прям так 700 строк сплошной арифметики???

Re: Скорость работы

Добавлено: 03 дек 2007, 18:42
mobius
Замеряй используемую память до и после вызова своей процедуры.

И не факт что в остальных кусках твоей проги нет утечки

Re: Скорость работы

Добавлено: 04 дек 2007, 10:28
BBB
mobius писал(а):Замеряй используемую память до и после вызова своей процедуры.
И не факт что в остальных кусках твоей проги нет утечки
Кстати, да. Если дело происходит в Pascal-е, то есть функции MemAvail и MaxAvail.