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

Вниз

Выравнивание данных   Найти похожие ветки 

 
Stan   (2007-02-24 19:25) [0]

Следует ли уделять внимание выравниванию данных ? Или теперь мощностя проца все съедят?


 
Eraser ©   (2007-02-24 19:34) [1]

> [0] Stan   (24.02.07 19:25)

там где это действительно нужно, внимание уделять безусловно стоит, к примеру, если нужно пройтись по огромному массиву структур для извлечения определенных полей из кажной структуры и т.п.
а если обращение к структуре выполняется редко, то не стОит заниматься ловлей блох.

PS
AFAIK, если не использовать директиву packed, то данные в структуре выровнены по-умолчанию.


 
Суслик ©   (2007-02-24 19:35) [2]

я не уделяю, ибо не пишу высокопроизводительных приложений (задачи такой нет).


 
Суслик ©   (2007-02-24 19:35) [3]


> PS
> AFAIK, если не использовать директиву packed, то данные
> в структуре выровнены по-умолчанию.

а вот в массиве нет :)
всегда не выровнены.


 
Eraser ©   (2007-02-24 19:53) [4]

> [3] Суслик ©   (24.02.07 19:35)

ну если это массив из выровненных структур, то получается что выровнены )


 
Юрий Зотов ©   (2007-02-24 20:07) [5]

Присоединяюсь к "там где это действительно нужно, внимание уделять безусловно стоит".

Например, структура предназначена для сохранения в файл/поток. Или есть проход по ней с помощью указателя. В общем, во всех случаях, когда наличие "дырок" нежелательно.


 
TUser ©   (2007-02-24 21:39) [6]

Производительность алгоритма зависит ... от алгоритма. А не от мух. Ну, мне не разу не удалось ускорить программу более чем на несколько процентов на основании улучшений, подобных сабжу. А вот модификация алгоритма приводила часто к существенному улучшению. К примеру есть массив рекордов из двух символов (char). Ну, будем его сортировать пузырями. Будет медленно. Заменим на packed. Сново медленно. А заменим на квиксорт - будет быстро.

[5], имхо, основано на том, что ЮЗ работал еще с настоящими компьютерами, где это все имело значение. Не то что нынешние, включая меня, пень-юзеры. Если есть реальный пример, когда производительность возрастает от подобных вещей - прочитаю с практическим интересом.


 
Eraser ©   (2007-02-24 21:53) [7]

> [6] TUser ©   (24.02.07 21:39)


> А не от мух

да не сказал бы, что это прямо таки мухи.. по разному бывает.

вот буквально месяц назад удалось заметно повысить производительность одной из функций приложения, заменив в структуре DWORD на WORD и расположив поля структуры в соответствии с правилами выравнивания. Там по сети передавался блок данных (по сути массив структур), обработку этих данных и реакцию на них необходимо было воспроизводить в реальном времени и как можно быстрее.


 
Ketmar ©   (2007-02-24 22:30) [8]

раз рекомендуют -- надо делать. памяти нынче много, пара десятков байтиков роли не играют обычно. это вам не Z80.



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

Форум: "Прочее";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
3-1164308532
serko
2006-11-23 22:02
2007.03.18
Одновременная работа с базой...


3-1166370695
Jeeb
2006-12-17 18:51
2007.03.18
Проблема округления в DBGrid


15-1172050398
DVM
2007-02-21 12:33
2007.03.18
Вопрос знатокам FreeBSD


6-1160052302
Прохожев М
2006-10-05 16:45
2007.03.18
Письма с вложением


2-1172237689
Аликъ
2007-02-23 16:34
2007.03.18
Адрес





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский