The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Новая редакция списка возможностей, которых не хватает в ядр..."
Отправлено Аноним, 25-Окт-11 14:29 
>> А также в оптимизации значение имеет суммарный конечный результат, а если одни параметры оптимизируются в ущерб других - зачем такая оптимизация нужна.
>
> Открыть секрет? Оптимизация по размеру делается в ущерб производительности почти всегда. И наоборот. Причем именно эти крайности имеют место быть в основном.

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

Про размеры вы совершенно правы. Сейчас Винды в лидерах по быстродействию за счет больших объемов и сложности кода.
И Linux идет по пятам за ними в этом деле.

Об остальных целях оптимизации вы вообще предпочли умолчать.

>> Видите ли, в нормальных ОСях (и даже не только в Юниксах) принято доверять ядру, и не доверять прикладному коду.
>
> Видите ли, к точке сохранения и использования регистров это имеет отношения ровно 0.00.

Значит для вас не имеет. Я уже понял, что вы предпочитаете сохранять регистры, не доверяя это ядру, хотя оно это и так делает. А потом рассуждать об оптимизации.

> Нисколько. Перезагрузка указателя на фиксированную структуру обычно вообще делается с помощью MOV r,imm,

Ну допустим, в этом случае так. Значит видимо в вашем коде преобладают именно статические структуры, когда вам еще на этапе компиляции известно их количество и размеры. Ну да, любители шаблонов С++ любят так развлекаться. А иначе - смотрим далее.

> на динамически распределенную - MOV r,mem, если же структура вся помещается на стеке - никакой перезагрузки не нужно.

Ну а здесь какой выигрыш? В итоге та же память, тот же стек.
Я ведь уже сказал, при оптимизациях надо смотреть на суммарный конечный результат.
Убирая из стека в регистры одно, вы будете вынуждены класть туда другое.
Если еще учесть, что вы предпочитаете сохранять и восстанавливать одни и те же регистры дважды (см. выше и ранее).

> Такое и может быть только в ваших системах. У нормальных систем есть ABI, и оптимизаторы о нем знают.

В "наших" системах это называется "Keep it simple, stupid!".

Т.е. вы искренне верите, что ABI сообщит вам все варианты ветвления кода в ядре в зависимости от текущего состояния процессора и памяти на момент системного вызова, и все это на этапе компиляции.

Оно вам просто сообщит максимальное объединенное множество регистров. Дополнительный источник потенциальных багов. И зачем? Когда ядро все равно в рантайме сохраняет нужные регистры по мере необходимости. Все просто.

> ЗЫ. Последний тезис - про абстрактные сферические в пределах одной программы. При вызовах в ядро переключение контекста все равно сбрасывает очередь.

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

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

> Опа, iZEN, залогиньтесь.

И это сюда же. Я уже понял, что вы сторонник гадания на кофейной гуще. Так же как с очередью и регистрами.

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

Т.е. вас как-то от этого спасает сохранение регистров в тот же самый стек, да еще и дважды (когда это и так делает ядро).

> В чём? Примеры в студию.
> Дык пруф где?

Это вы так и не привели в студию примеры ваших "хитростей".
Или тотальное использование статических структур - это и есть вся ваша хитрость?

Т.е. рассуждая о всяких там кешах, очередях и регистрах в современных процах, вы по прежнему убеждены, все эти технологии обошли стек стороной.

Резюме.

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

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру