Главная страница
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.033 c
3-89111
Term
2003-10-08 11:21
2003.10.27
Народ помогите прицениться


6-89448
Serega123
2003-09-02 10:28
2003.10.27
Отправка почты ( Mapi )


1-89319
P0tia
2003-10-15 19:35
2003.10.27
CoolBar


14-89459
Dmitriy O.
2003-10-07 13:22
2003.10.27
Как управлять шрифтом в Richedit ?


1-89211
SERG_*
2003-10-16 18:55
2003.10.27
Макроподстановка