странно в коде нет ничего особенного к чему можно применить какие нибудь современные инструкции которые не знает компилятор d7
а вот 32 битные программы несколько быстрее работают на 64битных процессорах (ну раньше такое наблюдал), больше в кеш попадает и за одно заполнение 64бит регистра заполняется 2 32бит.
по существу - так чеж проги на лазарусе такие тормозные то получаются емае!?!?, скорость работы с датасетами просто удручает.
Добавлено спустя 2 минуты 37 секунд:во, надо 32 фпц проверить
Добавлено спустя 21 секунду:32бит всмысле
Добавлено спустя 1 час 15 минут 12 секунд:Провел простой тест, текстовый файл 500мег (куча склееных в один файл исходников pas):
function GetTimeExecute(TickCount: Integer): String;
begin
case TickCount of
0..59000: Result := Format('%d,%d сек',[TickCount div 1000,TickCount mod 1000]);
60000..3600000:Result := Format('%d:%d,%d сек',[TickCount div 60000,(TickCount mod 60000) div 1000,(TickCount mod 60000) mod 1000]);
else
result := 'Ну очень долго!!
(';
end;
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
CurTick : Cardinal;
begin
CurTick := GetTickCount;
with TStringList.Create do try
LoadFromFile('D:\tr20\444.txt');
finally
Free;
end;
Memo1.Lines.Add(Format('Время выполнения: %s',[GetTimeExecute(GetTickCount - CurTick)]));
end;
WinXP 32бит 4гб
D6 Upd3
7.34 +/- 0.3 сек
стабильный результат (независит первое или нет), более 10 нажатий Button1.
Laz 1.8.2, FPC 3.0.4 (седня установил)
10.8 +/- 0.5 сек
стабильный результат, только одно нажатие, при повторном оутофмемори
Эх, лазарус все еще не пригоден для работы.
Настройки базовые, из коробки