Форум: "Потрепаться";
Текущий архив: 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