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

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Wormkeeper
Сообщения: 6
Зарегистрирован: 19 дек 2004, 16:08
Откуда: Москва

Есть такая проблемма. Сам решить не могу её. Программа на дэльфе 7. В программе основная процедура ведёт некоторые рассчёты. Эта процедура запускается порядка 10000 раз. Можно сказать, что входные параметры у неё одинаковы. Внутри процедуры нет никаких мэмори стримов, ссылок и прочего, способствующего утечкам памяти. Выделяются только простые переменные, типов integer, real, string. Но тем неменее, с каждым циклом процедура начинает работать всё медленнее, к концу работы программы каждая обработка может занимать на порядок больше времени, чем в начале.
С чем это может быть связанно? Дэльфю я особо хорошо не знаю, посути кодю, как кодил бы в паскале. Может там есть какая-нибудь команда, которая очищает область памяти где работала процедура и её запускать после каждого вызова надо?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Утечкам памяти могут способствовать только кривые руки.
А вопрос расчитан на телепата.
Wormkeeper
Сообщения: 6
Зарегистрирован: 19 дек 2004, 16:08
Откуда: Москва

Ладно. Можно поставить вопрос более конкретно.
Если я вызываю процедуру, внутри которой переменные объявляются только как integer, real, string, или массивы из них, причём задавая на вход процедуры одинаковый набор данных, то почему скорость исполнения процедуры замедляется при каждом её последующем вызове.
P.S.
раду буду услышать любые возможные теории)
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Лучше покажи код.
Wormkeeper
Сообщения: 6
Зарегистрирован: 19 дек 2004, 16:08
Откуда: Москва

там процедура порядка 700 строчек) к тому же она сопрягается с кучей остальных кусков проги)
Я курсовик пишу)
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Да покажи код, если действительно хочешь помощи. Без него все равно никто ничего не скажет
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Insane
Сообщения: 6
Зарегистрирован: 28 ноя 2007, 03:08

Если уж не хочешь показывать код и хочешь определить факт утечки памяти, три кнопки и дыбай в поле "память" :)
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

вот прям так 700 строк сплошной арифметики???
Изображение
mobius
Сообщения: 157
Зарегистрирован: 25 янв 2005, 18:42
Откуда: Минск
Контактная информация:

Замеряй используемую память до и после вызова своей процедуры.

И не факт что в остальных кусках твоей проги нет утечки
Всё об отдыхе на http://chugaga.com
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

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