Помогите пожалуйста понять причину следующего "явления", самому увы в силу уровня знаний, понять не удаётся
Начну из далека: Решился я таки посмотреть что за зверь такой этот PascalABC.NET (Далее PABC) открыл я значит Данный документ, читаю какой FPC убогий и прочие восхваление PABC, дохожу до страницы №8 (Это все на что меня хватило ) и вижу там заявление, что производительность программ на PABC выше чем на FPC, честно говоря задело.
Установил PABC перенес примеры из текста по сравнению производительности, проверяю, расстраиваюсь:
Код PABC: Среднее время выполнения на моем Intel i5-4210H - 425мс
- Код: Выделить всё
begin
var n := 10000;
var s := 0.0;
for var i:=1 to n do
for var j:=1 to n do
s += 1.0/(i*j);
writeln(Milliseconds);
end.
Код FPC: Среднее время выполнения - 575мс
- Код: Выделить всё
var
tt:Cardinal;
n,i,j: integer;
s: real;
begin
tt:=GetTickCount64;
n := 10000;
s := 0.0;
for i:=1 to n do
for j:=1 to n do
s += 1.0/(i*j);
writeln('Tick: ',GetTickCount64-tt);
ReadLn;
end;]
Крайне не довольный результатом, лезу в реализацию функции Milliseconds в PABC, "как могу переношу" её в FPC:
- Код: Выделить всё
StartTime:=Time; //Переменная назначается при старте программы естественно
//Остальное после цикла
cur_t:=Time;
ml:= cur_t-StartTime;
WriteLn('Milliseconds: ',IntToStr(DateTimeToTimeStamp(ml).Time) );
Получаю среднее время выполнения - 265мс
Выношу код выше в отдельную функцию и вызываю её: Среднее время выполнения - 565мс
С чем это может быть связанно помогите разобраться пожалуйста...