Текущий архив: 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.45 MB
Время: 0.011 c