Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

К вопрсу о скорости   Найти похожие ветки 

 
Immortal_   (2003-02-09 01:12) [0]

В моей программе идет сравнение элементов массива со строками посимвольно, используя два вложенных цикла. При этом достигается определенная скорость. При подключении оптимизированного System.pas скорость падает примерно в 1,5 раза. Означает ли это что юнит оптимизирован на размер в ущерб скорости, или я опять что то не правильно делаю?

с уважением Immortal.


 
Yrtimd ©   (2003-02-09 01:38) [1]

Советую сравнивать не производительность всего цикла, а его отдельных этапов (операций). Так с большей вероятностью можно установить причину задержки.


 
SPeller ©   (2003-02-09 04:54) [2]


> При подключении оптимизированного System.pas скорость падает
> примерно в 1,5 раза

Это как? Этот модуль всегда сам подключается по умолчанию. Или вы берёте левый System.pas и подключаете uses system? Так чтоли?


 
Gandalf   (2003-02-09 10:58) [3]


> При этом достигается определенная скорость. При подключении
> оптимизированного System.pas скорость падает примерно в
> 1,5 раза.


Речь идет о замене SysLibs? Или просто перекомпилировал проект с оптимизацией? И для конкретики код бы узнать. Судя по описанию что-то типа:

for i:=0 to ... do
for j:=0 to ... do
Massiv[i,j]:=Strs[i,j];

Так?


 
Immortal_   (2003-02-09 12:46) [4]

Я беру модуль, предлагаемый Владимиром Кладовым как замену стандартному в KOL приложениях:
// KOL version of System unit for Delphi6.
// September, 2001
// (C) by Kladov Vladimir

Достаточно в Tools - Environment options – Library поставить путь к нему на первое место и он подключится в замен стандартного, равно как и другие юниты, предлагаемые для замены стандартных.

Win и Dos – Большие константные массивы, Str – Стринг, примерно 200 кб.

var
count,x,y,Index: Integer;
begin
Result := "";
count:=length(Str);
prg1.MaxProgress:= Count;
for x:=1 to count do
begin
index:=-1;
for y:=Low(Win) to High(Win) do
if Win[y] = Str[x] then
begin
Index:=y;
Break;
end;
if Index=-1 then Result:=Result+Str[x]
else Result:=Result+Dos[Index];
prg1.Progress:= x;
end;

О скорости можно судить по прогресс бару, отсюда и вопрос…


 
Immortal_   (2003-02-09 12:58) [5]

Я дико извиняюсь, скорость падает только если запускать из-под IDE. Если откомпилить, а потом запускать, то скорость не изменяется.
Еще раз Sorry.


 
Kladov   (2003-02-09 17:39) [6]

UseDelphiMemoryManager
Моя замена system оптимизирована по размеру, а не по скорости.



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

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
1-89331
Vad_VAD
2003-10-16 15:50
2003.10.27
TMEMO


14-89555
Zacho
2003-10-08 01:47
2003.10.27
Воздух из мониторов


7-89587
Borealis
2003-08-14 22:06
2003.10.27
Кем лочится файл?


1-89324
Tommy
2003-10-16 17:39
2003.10.27
И Опять stringGrid...


6-89433
shark
2003-08-29 10:37
2003.10.27
как узнать IP адрес ?