Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Вниз

Время просчета пустой процедуры   Найти похожие ветки 

 
lookin ©   (2007-08-08 03:39) [0]

Равно ли оно нулю или очень мало или не очень мало? Или даже если не пустой, что-то типа:

procedure A(entr: string);
begin
 if Pos(" ",entr)=0 then ... else ...;
end;

Ведь во всяком случае проверка на наличие символа " " должна осуществляться... А то сократил существенно вызов таких "пустых" процедур, но полное время просчета значимо не изменилось...


 
Zeqfreed ©   (2007-08-08 08:12) [1]

Пустые процедуры выбрасываются оптимизатором. Непустые, но которые ничего полезного не делают, стоит выбрасывать самому. Чтобы опередить на каком местре программа «застревает», необходимо воспользоваться профилировщиком.

Я вот тут недавно заменил цикл на копирование непосредственно кусков памяти в функции, которая выполнялась согласно профилировщику 80% времени и программа стала выполняться в 20 раз быстрее :)


 
TUser ©   (2007-08-08 09:04) [2]


> функции, которая выполнялась согласно профилировщику 80%
> времени и программа стала выполняться в 20 раз быстрее

Это как?


 
Zeqfreed ©   (2007-08-08 10:34) [3]

> TUser ©   (08.08.07 09:04) [2]

Я же все написал. Если до этого она выполнялась три минуты, то после исправления стала выполняться около десяти секунд.


 
TUser ©   (2007-08-08 10:38) [4]

Если эта процедура занимала 80% времени, то ускорение никак не может быть больше, чем в пять раз.


 
Zeqfreed ©   (2007-08-08 11:09) [5]

> TUser ©   (08.08.07 10:38) [4]

Ну да, в принципе логично :)
Значит перепутал числа. Но прирост в скорости был впечатляющий, тем не менее.


 
lookin ©   (2007-08-08 11:59) [6]

Ну собственно я тоже выкинул, точнее, поправил некоторые процедуры. Что, собственно, я сделал, я поставил в каждую такую процедуру запись в лог-файл, а потом посмотрел, сколько раз у меня выполняются ненужные действия. Сократил ненужные действия раз в 10, ускорение было лишь в несколько сотен миллисекунд, при расчетном времени порядка секунд, десятков секунд...



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.042 c
4-1173526703
BOGa
2007-03-10 14:38
2007.09.02
Обмен данными между процессами ( WM_COPYDATA)


15-1186251555
Инс
2007-08-04 22:19
2007.09.02
Функция IsTrue


15-1186317988
user_
2007-08-05 16:46
2007.09.02
WSH


3-1178107188
-Lex-
2007-05-02 15:59
2007.09.02
Проблема с Lookup полями


2-1186750317
alles
2007-08-10 16:51
2007.09.02
Функция DirectoryExists работает долго





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский