Главная страница
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.019 c
3-89156
IGOR_k
2003-10-07 12:14
2003.10.27
dbf create


14-89451
yaJohn
2003-10-10 12:21
2003.10.27
Ни к кому конкретно не обращаясь.


1-89286
TUser
2003-10-14 12:36
2003.10.27
Убрать Hint


1-89198
AB
2003-10-17 10:31
2003.10.27
IniFile -> ресурсы


4-89642
Snap
2003-08-19 13:19
2003.10.27
API(HDC, HBitmap)= картинка на экране - KAK?