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

Вниз

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

 
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 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.01 c
1-89387
denmin
2003-10-15 16:20
2003.10.27
Delphi5 в Win2k проблема


14-89475
race1
2003-10-09 17:07
2003.10.27
modelmaker


6-89442
Denk
2003-08-30 11:06
2003.10.27
Неужели работает?


1-89212
$Hic0
2003-10-15 11:47
2003.10.27
OnSelectItem в listView


14-89493
Ketmar
2003-10-08 17:57
2003.10.27
proxy server со скриптами в кладовке %-)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский