- Код: Выделить всё
function HashTable_Func(key: AnsiString): Cardinal; inline;
begin
Result := ori_Hash32.BKDRHash(key) and $7FFFFFFF;
end;
...
for i := 0 to 10000000 do
begin
HashTable_Func('x');
HashTable_Func('y');
HashTable_Func('z');
HashTable_Func('a');
HashTable_Func('b');
HashTable_Func('c');
end;
В fpc с дерективой inline - 1000 mlsec
Без нее - 700 mlsec.
Вот собственно и функция. Для меня даже эти 30% очень критичны, т.к. код в функции без вызова работает за 500 mlsec, в делфи с inline директивой, функция вызывается за такую же скорость.
Что за фак вообще? {$MACROS ON} вообще замедляет в 2,5 раза.