Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Приступ болезни "оптимизация" - типы   Найти похожие ветки 

 
Паскальные надписи ©   (2004-08-13 23:44) [0]

Меня интересуют следующие вопросы:

1. Стоит ли использовать Shortint, Byte вместо Integer ?
 Очень часто большие  натуральные переменные не нужны.
 Существенен ли выигрыш по памяти?
 Есть ли выигрыш по скорости?

2. Какой самый нетребовательный вещественный тип?
 (нужно то иногда 2-3 значащих разряда)  

3. Зачем в Delphi меняют, пусть не существенно, типы от ТР?
 Ладно я понимаю там добавить более точные, большие.
 Но почему вдруг integer и real выросли? Или это книжки врут.

4. Какие целые и вещественные типы вы используете?
 Ясно, что "в зависимости от ситуации", но всё же.

5. Зачем так много разных новых типов, строковых в частности?
 Это чтобы запутать?

6. Можно ли ввести свой вещественный тип "с нуля"?
                                          (Орех,да? :))))
 Для, например, проблемы 2.

Заранее спасибо


 
Alex Konshin ©   (2004-08-13 23:52) [1]

5. http://www.akzhan.midi.ru/devcorner/akdeltnt-content/akdeltnt-0033.html


 
GuAV ©   (2004-08-13 23:52) [2]


> 1. Стоит ли использовать Shortint, Byte вместо Integer ?
>  Очень часто большие  натуральные переменные не нужны.
>  Существенен ли выигрыш по памяти?
>  Есть ли выигрыш по скорости?

Ни в коем случае, есть проигрыш по скорости.

> 2. Какой самый нетребовательный вещественный тип?
>  (нужно то иногда 2-3 значащих разряда)  

Single

> 3. Зачем в Delphi меняют, пусть не существенно, типы от
> ТР?
>  Ладно я понимаю там добавить более точные, большие.
>  Но почему вдруг integer и real выросли? Или это книжки
> врут.

Win - 32 bit, dos -16 bit. про real TP -эмулировал FPU, Delphi - юзает реальный, эмуляция не актуальна.


> 4. Какие целые и вещественные типы вы используете?
>  Ясно, что "в зависимости от ситуации", но всё же.

Integer,Cardinal
Edtended,Double

> 5. Зачем так много разных новых типов, строковых в частности?
>  Это чтобы запутать?

Совсем наоборот


> 6. Можно ли ввести свой вещественный тип "с нуля"?
>                                           (Орех,да? :))))

Это - имхо ДА. см. возможности FPU.


 
Anatoly Podgoretsky ©   (2004-08-13 23:57) [3]

В целом короткие типы стоит использовать если нужна экономия по памяти, в ущерб скорости.

По поводу Integer/Real теба надо разобраться с понятием Fundamental/Generic типами, вот тогда возможно запутаешься :-), но без этих понятий, все равно что жить в обществе без цветовой дифференциации штанов.


 
DiamondShark ©   (2004-08-14 00:00) [4]


> 1. Стоит ли использовать Shortint, Byte вместо Integer ?
>  Очень часто большие  натуральные переменные не нужны.
>  Существенен ли выигрыш по памяти?
>  Есть ли выигрыш по скорости?

Имеет смысл использовать только там, где важен физический размер данных (различные API, общение с железом, внешнее хранение...)
Выигрыша по скорости нет.
Выигрыша по памяти (для отдельных переменных) тоже нет.
Для структурных типов выигрыш в памяти появляется при использовании директивы packed. Но, возможно, ценой скорости.


> 2. Какой самый нетребовательный вещественный тип?
>  (нужно то иногда 2-3 значащих разряда)  

Любой.
Меньше размер у Single. Скорость одинакова (кроме Real48).


> 3. Зачем в Delphi меняют, пусть не существенно, типы от
> ТР?
>  Ладно я понимаю там добавить более точные, большие.
>  Но почему вдруг integer и real выросли? Или это книжки
> врут.

Всё правильно. Это обобщённые типы.


> 4. Какие целые и вещественные типы вы используете?
>  Ясно, что "в зависимости от ситуации", но всё же.

Integer, Cardinal, Double.
Остальные только там, где важен физический размер (см. 1)


> 5. Зачем так много разных новых типов, строковых в частности?
>  Это чтобы запутать?

Для гибкости, для покрытия большого круга применений.


> 6. Можно ли ввести свой вещественный тип "с нуля"?
>                                           (Орех,да? :))))

Угу. Кокосовый. :)


 
GuAV ©   (2004-08-14 00:00) [5]


> Fundamental/Generic

И про Integer вырос тоже ;-)

> В целом короткие типы стоит использовать если нужна экономия
> по памяти

+ И то если не в массиве и не в packed record - не сэкономишь из-за alignment, а {$A1} не стоит делать.


 
Паскальные надписи ©   (2004-08-14 00:37) [6]

7.  Перечислимые типы:
         var mode: ( _find, _edit, _save);
  Они на основе integer?


 
GuAV ©   (2004-08-14 00:53) [7]


>   Они на основе integer?

RTFM enumerated types->Minimum enumeration size


 
Игорь Шевченко ©   (2004-08-14 00:54) [8]


> 7.  Перечислимые типы:
>          var mode: ( _find, _edit, _save);
>   Они на основе integer?


Размер задается в опциях компилятора, по умолчанию - в сколько влезет. Если элементов мало, то в байт, и т.д.


 
Паскальные надписи ©   (2004-08-14 16:49) [9]

Так всё же, если, допустим, скорость не критична, обращения к переменной редки, то есть смысл использовать всякие Byte,
Shortint, перечислимые?


 
DiamondShark ©   (2004-08-14 17:27) [10]


> Так всё же, если, допустим, скорость не критична, обращения
> к переменной редки, то есть смысл использовать всякие Byte,
> Shortint, перечислимые?

А зачем?
Перечислимые -- отдельный вопрос. Но почему бы не использовать только обобщённые типы?


 
GuAV ©   (2004-08-14 17:30) [11]


> перечислимые

Перечислимые удобны для "самодокументирующихся" свойств и параметров как хорошая альтернатива целочисленным константам. И множества из них - аналогично. Byte, Shortint - редко когда ваще нужны, только если там например во внеш ф-цию передавать.


 
Паскальные надписи ©   (2004-08-15 15:37) [12]

Спасибо всем



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
4-1090569281
NorthMan
2004-07-23 11:54
2004.09.05
System date


1-1092755690
pavel_pavel
2004-08-17 19:14
2004.09.05
Чтение файла посимвольно


10-1035266575
kostik78ua
2002-10-22 10:02
2004.09.05
Один запрос на всех клиентах


1-1092817452
DK
2004-08-18 12:24
2004.09.05
Ограничени размера TMemo


4-1090506451
юзверь
2004-07-22 18:27
2004.09.05
SendMessage - ToolbarWindow32 - TB_ADDBUTTONS