The OpenNET Project / Index page

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



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

Исходное сообщение
"В рамках проекта Lwan развивается новый высокопроизводительн..."
Отправлено Аноним, 26-Апр-16 15:28 
> "это не я сел в лужу! Это другой аноним!"

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

> вас, такого красивого, порол знатную чушь )

В тред врывается Д'Артаньян! Как шаблонно, фи.

> Открою вам страшную тайну (вернее, повторю свой прервый постинг) – байткод совсем
> необязателен. Зайдите в  гугол и найдите всякие трансляторы питона в С++, Си и т.д.

И узнайте о том что они умеют сильно урезаный поддиалект? ;)

> Там зачастую никаким байткодом и близко не пользовались.

Обычно там делают ограничения и поддерживают только часть языка. Неудобно это - динамически типизированный язык в статически типизированный транслировать. Теоретически возможно, практически - надо реализовать проверки типов и прочее. Код густо разбавляется и чуда не происходит. Поэтому соревнуются с 1929 годом^W^W интерпретатором.

> А еще расскажите об отсутствие толка всяких промежуточных кодов
> гццшникам со шлагновщиками – а то они, болезные, не знают об этом.
> Ну да, куда им до анонимов опеннета! )

Зачем у них промежуточные коды - еще можно понять. Но это внутренние сущности. Они мало кого интересуют кроме авторов компилятра. Остальных интересует как работает программа. Тут то и будет облом. Хоть так эмить проверки типов, хоть эдак. Они будут. Это главное. В лучшем случае оптимизатор может попроовать что-то удалить, с понятным успехом. Лучший способ помочь оптимизатору - не подваливать ему лишней работы.

> поместить в один массив несколько различных типов данных,

У современных процессоров операции регистр-регистр быстрые, за 1 такт даже несколько операций может произойти. А обращение к массиву - шанс нарваться на доступ в RAM и отдохнуть. У быстрых процессоров это до сотен тактов. Есть кэш, но будет ли это cache hit... если ты все будешь в массивы пхать - не будет! Если программа и рабочий набор уместилась в кэш, скорость работы может подскочить в РАЗЫ. На современных процах по этой причине unroll loop'ов может себя и не оправдать. Экономия на jmp в конце цикла может убиться усилением cache miss из-за разжирения кода. Быстрый код должен быть маленьким и работать с компактными наборами данных, иначе он будет выносить кэш и станет медленным.

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

Идея напихать все в массивы, не адресуемые напрямую с такой же скоростью как регистры да еще и норовящие осесть в медленной RAM, агрессивно затирая кэш - гениально, чё.

> не требуется )

Ну это ты просто не видел как программа разгоняется разиков в 5 "на ровном месте", если ты в кэш смог уместиться. Вот и предлагаешь способы улучшения thrashing кэша.

> Очень точная формулировка! )
> Хотя, чего я ожидал от анонимов.

Не знаю как там анонимы, а лично ты показал что не понимаешь архитектуру процессоров. Процессорные ядра сильно обгоняют RAM у всего что сложнее микроконтроллера (и даже у некоторых мк). А ты предлагашь способы засорения кэша. Будет очень производительно, даже не сомневайся.

> У другого, генерированием машинных кодов для "динамических типов" должен заниматься ИИ,

Это был бы самый быстрый и эффективный способ. Я ж не ты, заведомо провальную канитель с массивами не посоветую.
{...спам...}
> элемента, а значит нужен ИИ, способный осознать! Иначе низя! О как!).

Советовать заведомо фэйловые решения типа бреда с массивами - твоя привилегия.

> анонимные выводы. Правда, начисто проигнорировав ключевое слово "cторож"/guard.

Да хоть горшком называй проверки изменений типов, на результат не влияет.

> О как, оказывается это я упорно несу бред, понтуясь набором "вумных слов" )

Не только. Ты еще слился на полном непонимании стомости операций у современных CPU, что такое кэш и все такое.

> Проигнорировать часть предложения даже для вас слишком уж жирно. Тоньше нужно быть, тоньше.

Зачем быть тонким с кадром, который не понимает основ кэширования но машет интеловским маном? Ты более тонко не заметишь с таким то умищем.

> А если бы я захотел попонтоваться, то упомянул бы, что 4 томика
> "от интеля" у меня на книжной полке стоят. Так что мимо. )

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

> Громче и чаще, авось кто поверит. Заодно и от лажи отвлечет =)

Ты так задорно зажигаешь что аудитория уже задолжала анонимам за билеты в цирк.

> Неа, читайте внимательнее! Я же не аноним, чтобы с умным видом нести чепуху.

Если ты так настаиваешь...  ок, теперь ты не аноним ;).

> Умудриться приплести Тюринга к типам  – и при этом проигнорировать ключевое
> слово "сторож"/guard  – это сильно.

А подумать головой о том что "сторож" было включен в более общее понятие "проверки типов" - это для таких как ты слишком сложно? Понимаешь ли, когда операция регистр-регистр делается за такт, по сравнению с этим вообще любое лишнее трепыхание - дорогое. Как его ни обзови, даже если ты уложишься в еще 1 такт - таки падение скорости в 2 раза.

> А я ведь специально "подставился",

Что-то слишком хорошо сыграл по части кэшей и прочих массивов. Не верю что ты настолько талантливый актер.

> Понт окончился очередной грязевой ванной )

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

> Ну да, а еще наверняка есть "половинная беременность" – это когда с
> большими оговорками …

А мир вообще не черно белый, бывают всякие гибридные подходы. Jit один из них.

>> К тому же jit не может тратить столько же ресурсов как компилятор на компиляцию.
> А мусью в курсе, зачем компиляют в байткод и какие это дает возможности?

Да, однако в конечном итоге нас интересует качество машинного кода на энной платформе. Тяжелые оптимизации - ресурсоемкие, jit не может позволить себе стать полноценной билдфермой. С соответствующими последствиями для качества кода. Если хочется тяжелые оптимизации, AOT уместнее. Его реалтайм не жмет, потребление ресурсов менее критично т.к. еще не делится с работающей программой, а там где этого надо хорошо и много - может быть сделано другим компьютером, мощным и крутым, то что для смартфонного проца 10 минут, для мощного билдсервера - секунд 20. Но он и воздух греет в других объемах. Jit так не может.

> А о разных "уровнях" оптимизации?
> Хотя, откуда.

Да куда нам, анонимам, чай пить.

> У одного анонима это вообще "замена ключевых слов", у  (конечно же)
> другого от оного "толка нет", просто "избавляет от неэффективного парсинга строк".

У дефолтного питона оно как-то так вроде и реализовано - питон интерпретирует этот байткод, медленно и печально.

> гцц или шланга компиляторы писать поучат! )

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

> Еще один шедевр. YMMD! =)
> Оказывается динамичность виновата, о как!

Она такому состоянию дел дополнительно способствует. Добиться того чтобы конструкции языка транслировались в нечто простое, легкое и предсказуемое - не так то просто. И да, в сишечке я могу и посмотреть во что моя конструкция реально разложилась в виде машинного кода и я смогу довольно хорошо просчитать что будет и может быть. А что, сможешь так же круто заинструментировать jit? Ты кстати ничего не сказал про overcommit или latency, если уж мы про время.

> Значит glibc (и еще куча имплементаций cтандартной библиотеки) в общем и malloc/free
> в частности вполне подходит для использования в "реальном времени" ? Нормально.

В си можно работать и без libc, и без выделения памяти malloc'ом. Как тебе такой оборот? На си с полоборота пишут загрузчики и ядра, которые работают когда файловой системы, управления памятью и прочих malloc еще и в проекте нет. Зарубиться с таким инструментарием в вопросе предсказуемости операций - ну попробуй.

> Пишите еще! Жду с нетерпением дальнейших "посрамлений" )

Ну если ты так настаиваешь...

 

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



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

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