Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
Паскальные надписи ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.033 c
3-1092063370
raul
2004-08-09 18:56
2004.09.05
как лечить ошибку таблицы PARADOX header/index corrupt


1-1093229977
Vilux
2004-08-23 06:59
2004.09.05
TTree и прокрутка


14-1092898007
gn
2004-08-19 10:46
2004.09.05
crypt


14-1092426242
Паскальные надписи
2004-08-13 23:44
2004.09.05
Приступ болезни "оптимизация" - типы


10-1035224514
Прохожий
2002-10-21 22:21
2004.09.05
OMNIORB и C++ Builder





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский