Если у Вас есть 99,00$ для экономии Вас, может хотеть смотреть на http://www.isapirewrite.com/
[Выборка от их веб-сайта]
Обзор продукта
, ISAPI_Rewrite является мощным механизмом управления URL на основе регулярных выражений. Это действует главным образом как mod_Rewrite Apache, но специально разработано для Сервера информации об Интернете (IIS) Microsoft. ISAPI_Rewrite является фильтром ISAPI, записанным в чистом C/C++, таким образом, это чрезвычайно быстро. ISAPI_Rewrite дает Вам свободу пойти вне стандартных схем URL и разработать Вашу собственную схему.
[Пример использования] доступный в http://www.helicontech.com/articles/provocative_SEF_URLs.htm
Для локальных переменных это, вероятно, не имеет большого смысла, но, используя меньшие целые числа в структурах, где у вас есть тысячи или даже миллионы элементов, вы можете сэкономить значительный объем памяти.
Нет, int
был выбран как самый быстрый тип int для современных 32/64 битных архитектур с использованием более коротких ( коротких
, sbyte
) будет стоить вам только производительности.
Иногда можно сэкономить память, но только при использовании больших массивов или списков. И даже в этом случае обычно не окупается.
Расчет с 8 битами:
sbyte a, b, c;
a = (sbyte) (b + c);
Приведение типа требуется и требует затрат времени выполнения.
Если это простая переменная, то при использовании меньшей ширины ничего не получится, и некоторая производительность может быть потеряна. Компилятор автоматически расширит объем памяти до полного процессорного слова, поэтому, даже если вы объявите только 16 бит, в стеке, скорее всего, потребуется 32 бита. Кроме того, в некоторых случаях компилятору может потребоваться выполнить определенные операции усечения (например, когда поле является частью структуры); они могут вызвать небольшие накладные расходы.
На самом деле это имеет значение только для структур и массивов, т.е. если у вас много значений. Для структуры вы можете сэкономить немного памяти за счет накладных расходов, о которых я упоминал выше. Кроме того, вы можете быть вынуждены использовать меньший размер, если структура должна следовать некоторому внешнему макету. Для массива экономия памяти может иметь значение, если массив большой.
Обычно используйте int
и т. Д.
В дополнение к другим ответам; также есть случаи, когда вы намеренно хотите поддерживать только заданный размер данных, потому что он представляет некоторую ключевую истину о данных. Это может быть ключевым при взаимодействии с внешними системами (в частности, взаимодействием, но также с базами данных, форматами файлов и т. Д.) И может быть смешано с проверенной
арифметикой - для выявления переполнения как можно раньше.
Честно говоря, потребление памяти, вероятно, не самая веская причина использовать маленькие целые числа (в этом примере). Но на карту поставлен общий принцип, гласящий: да, вы должны использовать только ту память, которая требуется для ваших структур данных.
Принцип таков: выделяйте только ту ширину, которая требуется вашим данным, и позволяйте компилятору находить любые ошибки переполнения, которые могут возникнуть, это дополнительный метод отладки, который очень эффективен. Если вы знаете , что значение никогда не должно превышать пороговое значение, тогда выделяйте только до этого порога.