![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Int64 vs Integer [D7, WinXP]
HydraMarat © (2004-09-14 00:07:00)Вопрос прост и звучит так: насколько Int64 медленее Integer? В справке я ничего не нашел толком, типа, есть такой тип и все тут. Насколько велики потери при использовании Int64, стоит ли разделять функции возвращающие Integer и Int64?
Спасибо.
HydraMarat (2004-09-15 00:34:00) [1]Т.е. получается что не так уж то и накладно, тем более, если проц серьезный, верно? Вообщем, Всем Спасибо, примерную картину я составил. "Далее, по ситуации..."
Alx2 (2004-09-14 09:31:00) [2]>Defunct © (14.09.04 09:02) [6]
Для P4 прямо сейчас не докажу - сижу за PIII.
Для P3 (в комментарииях тайминг, замеренный с помощью VTune):
procedure TForm1.FormShow(Sender: TObject);
Var k : integer;
m : Int64;
begin
k := 1;
repeat
inc(k); // 1317
until k=1000000000;// 6569
m := 1;
repeat
inc(m); // 2237
until m=1000000000; // 7828
close;
end;
Defunct (2004-09-14 09:02:00) [3]Alx2 © (14.09.04 07:30) [5]
> Неправда.
Докажите обратное для P4/celeron/Athlon/duron.
Alx2 (2004-09-14 07:30:00) [4]>Defunct © (14.09.04 05:48) [4]
>как минимум в два раза для современныхпроцессоров.
Неправда.
Defunct (2004-09-14 05:48:00) [5]> насколько Int64 медленее Integer?
как минимум в два раза для современных процессоров.
Slym (2004-09-14 05:45:00) [6]с Int64 операции накладнее...
если Integer результат вернуть можно в EAX то для возврата результата Int64 требуется уже 2 регистра EAX и EDX...
и все операции пересылки считай в 2 раза дольше... и судя повсему вычисления последовательные по 32бита: что тоже в свою очередь дольше... + операции expand EAX на EAX EDX...
Ihor Osov'yak (2004-09-14 02:07:00) [7]2 [1] Palladin © (14.09.04 00:33)
> если будет 64ех битный компилятор,
а бог его знает.. как бы делфи все же к дот-нет примкнуло. А там бы вроде говорят, что вас не должно волновать - 32 бита, 64 бита..
пока int в .net как бы 32 бита.. а вот с long вообще сказка - и в FCL, и в c# - 64 бита, тогда же как в управляемом c++ - 32 бита...
Palladin (2004-09-14 00:33:00) [8]
> насколько Int64 медленее Integer?
смотря какие операции сравнивать...
> стоит ли разделять функции возвращающие Integer и Int64?
Ну а стоит ли разделять функции возвращающие byte и word? или word и integer? Функции возвращающие результаты разных типов всегда стоит различать!
Int64 это 64битное знаковое причем Fundamental то есть какое оно есть такое и останется в следующих версиях Delphi, а вот Integer это 32битное в 32ух разрядном компиляторе Object Pascal.. если будет 64ех битный компилятор, то Integer соответственно станет 64 битным... не факт, вдруг не станет, но по логике вещей и выводов которые можно сделать на основе заявлений Borland должен...