Здравствуйте, Cyberax, Вы писали:
C>Скажите это товарищам из Sun'а. HotSpot JVM этим уже 8 лет занимается —
C>отслеживается CFG (Control Flow Graph) для инлайнинга вызовов
C>виртуальных функций. Причем динамически в рантайме.
Сказки не рассказывай. Есть исследовательские работы. Приемуществнно IBM-овские. Но в ХотСпоте пока что таких оптимизаций нет. Да и анализ там не постоянный, а при подгрузке типов. Слава богу ява не позволяет изменять загруженные классы.
C>Конечно, для инлайнинга name-based полиморфных функций придется сделать
C>намного больше работы.
Ага. А судя по том, что коропрации вроде MS, Sun и IBM не сделали это пока для Явы с Шарпом, можно сделать вывод, что задача крайне сложная если нужны не научные звания, а действительно быстрый код.
C>Но надо же чем-то занять более мощные процессоры?
О. С этим проблем нет.
В общем, я не вижу предмета дискусси. Мое мнение не изменилос. Я считаю, что таратить время на оптимизация динамически типизируемых языков, при наличии компонентных языков с выводом типов дающих практически те же возсожности что и скриптовые, нет никакого смысла. Лучше направить силы на разработку строготипизрованных компонентных клонов Руби и Питона, раз уж эти языки многим наравятся.
>> Так что лично я склоняюсь к тому, что идея оптимизации скриптов — тупиковая идея.
C>По крайней мере это поинтереснее очередного JITа для C#.
Интерес и полезность для общества разные вещи. Многие исследователи с упоением занимаются разной фигней. Лично мне намного интереснее исследования в области управляемых ОС (кстати, вот
перевод статьи о Сингулярити) и метапрограммирования (рефлексии времени компиляции, макросов...).
C>Я тут за все время так и не заметил полезных примеров применения
C>макросов на Немерле.
Пол Немерла — это полезное применение макросов. А у тебя не в одном глазу. Тут дело не в Немерле, а в глазах.
C> А вот eao197 приводил вполне полезные примеры из
C>своей build-системы.
Скорее, бесполезные. На Немерле можно создать подобную систему и она даже будет куда более строго контролировать формат выдавая понятные сообщения об ошибках. Но зачем это делать кода есть Ant и MSBuild?
... << RSDN@Home 1.2.0 alpha rev. 637>>