Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 должен...


Наверх

Титульная страница Поиск, карта сайта Написать письмо