Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Дано - СИ + Linux 64bit, большие массивы в оперативке как отменить выравнивание переменных по ширине процессорного слова ? те объявляешь uint8_t, а физически один фиг - 8 байт выделяется хочу протестировать на сколько упадет скорость при работе без выравнивания те оценить что выгоднее - наращивать оперативку или на сколько-то потерять в производительности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 09:33 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 09:41 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Dima T, автор#pragma pack это уже пробовал - не помогает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 09:52 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisa, Код: plaintext 1. 2. 3. 4. PS. Код давайте. Никто гадать не будет почему у вас там "не помогает". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 09:55 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Можно еще так Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 10:00 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisaхочу протестировать на сколько упадет скорость при работе без выравнивания -fpack-struct ключ компилятору задайте PS компилятор и его версию не скрывайте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 10:05 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. компилируется gcc -std=c99 -O2 итд # gcc -v Using built-in specs. Target: x86_64-redhat-linux .... Thread model: posix gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 10:41 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisa, и чего вы в этом примере ожидаете от изменения выравнивания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 10:51 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Barlone, cмотрите внимательно - платформа 64х битная те выделяется всегда 8 байт на любую переменную вне зависимости - uint8_t , uint32_t или uint64_t 2Изопропил -fpack-struc тоже никакого изменения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 11:01 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisa, переменных так много что ли? ну сгруппируйте в упакованную структуру для экспериментов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 11:20 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Статья про выравнивание в структурах http://habrahabr.ru/post/142662/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 11:22 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisacмотрите внимательно - платформа 64х битная те выделяется всегда 8 байт на любую переменную вне зависимости - uint8_t , uint32_t или uint64_t 2Изопропил -fpack-struc тоже никакого изменения А как вы определяете что нет изменений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 11:32 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisaДано - СИ + Linux 64bit, большие массивы в оперативке как отменить выравнивание переменных по ширине процессорного слова ? те объявляешь uint8_t, а физически один фиг - 8 байт выделяется хочу протестировать на сколько упадет скорость при работе без выравнивания те оценить что выгоднее - наращивать оперативку или на сколько-то потерять в производительности Для сериализации в бинарь лучше использовать не упакованные структуры а специальные стандарты типа EBML. По сути это попытка привести к общему знаменателю различные encodings, packages и *endians. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 12:14 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisaBarlone, cмотрите внимательно - платформа 64х битная те выделяется всегда 8 байт на любую переменную вне зависимости - uint8_t , uint32_t или uint64_t 2Изопропил -fpack-struc тоже никакого изменения Что за бред? Придумают несуществующие проблемы и решают их потом. Выравнивание это методика доступа к памяти, когда доступ к набору байтов осуществляется по _адресу_ кратному _размеру этого набора_. Попробуйте Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 13:34 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskynagisacмотрите внимательно - платформа 64х битная те выделяется всегда 8 байт на любую переменную вне зависимости - uint8_t , uint32_t или uint64_t 2Изопропил -fpack-struc тоже никакого изменения А как вы определяете что нет изменений? top короче статья на хабре в тему, а еще оказалось эффективно замучать разработчика кода и таки найти баг в коде, который порождал такое выделение оперативки (2.4GB), что реальная разница в 50 мег показалась ошибкой измерения хотя как раз это и была разница между 32/64 бит int ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 15:45 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisaреальная разница в 50 мег показалась ошибкой измерения хотя как раз это и была разница между 32/64 бит int 10 миллионов переменных в программе... Ух ты! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 15:51 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, утечка, наверное, или realloc'ами развлекаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 15:52 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Выравнивать надо те данные которые сидят в HighLoad. Буферные кеши там всякие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 16:26 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
maytonВыравнивать надо те данные которые сидят в HighLoad. Буферные кеши там всякие. Не совсем. Иногда надо выравнивать не для оптимизации, а потому что процессор не умеет/не разрешает по-другому (всякие ARMы, да и Интелы тоже имеют такой режим). Хотя само по себе то что процессор не поддерживает невыравненный доступ - это тоже оптимизация )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 16:49 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
nagisaДано - СИ + Linux 64bit, большие массивы в оперативке как отменить выравнивание переменных по ширине процессорного слова ? те объявляешь uint8_t, а физически один фиг - 8 байт выделяется хочу протестировать на сколько упадет скорость при работе без выравнивания те оценить что выгоднее - наращивать оперативку или на сколько-то потерять в производительности Ребята, я конечно может совсем из ума выжил, но на сколько я понял, автор утверждает, что в массиве unsigned char байтики будут выровнены на границу 8-и (или 4-рёх, не важно) байтового слова. Это в С-шной программе. Это как-то уже совсем бредом попахивает. Ни одна из libc функций так не будет работать. Автор, давай код, давай результаты тестов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 17:04 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
maytonВыравнивать надо те данные которые сидят в HighLoad. Буферные кеши там всякие. Ребята, выравниваются объекты, размер которых более одного байта. Массив из char-ов выравниваться не будет нигде -- как тогда с памятью -то вообще работать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 17:05 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
MasterZivМассив из char-ов выравниваться не будет нигде Ты эта... Не путай выравнивание элементов массива и выравнивание самого массива. Аффтар же талдычит про выравнивание отдельных переменных. Очевидно - локальных. Он ещё, видимо, не слышал про stack frames и прочую защиту от дураков. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 17:14 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMasterZivМассив из char-ов выравниваться не будет нигде Ты эта... Не путай выравнивание элементов массива и выравнивание самого массива. Аффтар же талдычит про выравнивание отдельных переменных. Очевидно - локальных. Он ещё, видимо, не слышал про stack frames и прочую защиту от дураков. Извини, но сколько можно потерять на выравнивании одной переменной ? 2-8 байт? Сколько же у него переменных должно быть, чтобы проиграть ? Ну в общем, бред какой-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 17:33 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
MasterZivСколько же у него переменных должно быть, чтобы проиграть ? Я же сказал чуть повыше: более десяти миллионов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 17:37 |
|
||
|
как отменить выравнивание переменных по ширине процессорного слова
|
|||
|---|---|---|---|
|
#18+
Дак я и говорю. Буферный блок (обычно содержит шапку). Структура. В понимании нашего топик-стартера. Вот ее и надо выравнивать. А она полюбому содержит идентификаторы. Указатели на соседние блоки, счётчики и сетку атрибутов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 19:18 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38871662&tid=2019123]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 170ms |

| 0 / 0 |
