Здравствуйте, VladD2, Вы писали:
C>>Ну и для JVM у нас еще получается бенефит в виде возможности быстрой интерпретации. VD>Ой как я люблю такие словосочетания... "быстрой интерпретации", "живой труп", ... Обожаю! VD>
Ну что сделать, если для .NET интерпретация байт-кодов еще медленнее
Здравствуйте, Cyberax, Вы писали:
C>Ну что сделать, если для .NET интерпретация байт-кодов еще медленнее
А зачем вобще интерпритировать? Если можно компилировать?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, Cyberax, Вы писали:
C>Ты можешь примерно набросать идею своей VM? Сейчас снова ожил проект http://hlvm.org/ — это как раз проект создания обобщенной виртуальной машины на базе LLVM. Может им полезно будет.
Не будет.
Ибо
focusing first on dynamic languages like Python and Ruby
А я считаю Python, Ruby и тп ошибкой природы. С++ я тоже считаю ошибкой природы.
Так что мои идеи совершенно несовместимы ни с LLVM ни с HLVM.
C>Благодаря ей у нас есть HotSpot в JVM. В теории, можно было бы заменить на многостадийную JIT-компиляцию, но сложность уже намного больше будет.
HotSpot в морг. Ибо не смотря на все потуги он не помогает жабе работать быстрее С++
C>Реально помогает, тем не менее.
Чем?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
C>>Ты можешь примерно набросать идею своей VM? Сейчас снова ожил проект http://hlvm.org/ — это как раз проект создания обобщенной виртуальной машины на базе LLVM. Может им полезно будет. WH>Не будет. WH>Ибо WH>
focusing first on dynamic languages like Python and Ruby
Заметь слово first — они не исключают статических языков.
WH>А я считаю Python, Ruby и тп ошибкой природы. С++ я тоже считаю ошибкой природы. WH>Так что мои идеи совершенно несовместимы ни с LLVM ни с HLVM.
На Питоне очень удобно скрипты писать, так что не надо. А на С++ для девайсов тоже очень все неплохо пишется.
C>>Благодаря ей у нас есть HotSpot в JVM. В теории, можно было бы заменить на многостадийную JIT-компиляцию, но сложность уже намного больше будет. WH>HotSpot в морг. Ибо не смотря на все потуги он не помогает жабе работать быстрее С++
Так JIT в .NET тоже не помогает
C>>Реально помогает, тем не менее. WH>Чем?
Беты 1.7 работают в некоторых моих тестах ОЧЕНЬ быстро.
Здравствуйте, WolfHound, Вы писали:
C>>Ну что сделать, если для .NET интерпретация байт-кодов еще медленнее WH>А зачем вобще интерпритировать? Если можно компилировать?
Сложность HotSpot VM значительно возрастает. Возможно, но сложно.
Здравствуйте, Cyberax, Вы писали:
C>Заметь слово first — они не исключают статических языков.
Угу. И LLVM не исключае safe языков. Вот только из-за этих уступок ОЧЕНЬ СИЛЬНО усложняется и ослабляется оптимизатор, а валидатор кода в большинстве случаев вобще курит.
C>На Питоне очень удобно скрипты писать, так что не надо.
На один экран кода и чтобы управляли чемто намного болие тяжолым. Иначе в морг.
Если кода больше то я лучше немерле возьму. Он по крайней мере мне все проверит, а не вылетит на пол пути из-за мелкой опечатки в редкоиспользуемом месте.
C>А на С++ для девайсов тоже очень все неплохо пишется.
Можно лучше.
C>Так JIT в .NET тоже не помогает
Ибо какойто 3.1415(скорей всего маркетойд) принял решение драть ВМ с жабы.
Если бы думали головой, а не лозунгом "догнать и перегнать сан" то все можно былобы сделать много лучше.
C>Беты 1.7 работают в некоторых моих тестах ОЧЕНЬ быстро.
Быстрее чем Intel C++? На тестах которые не получают преимущества от использования ГЦ?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
C>>Заметь слово first — они не исключают статических языков. WH>Угу. И LLVM не исключае safe языков. Вот только из-за этих уступок ОЧЕНЬ СИЛЬНО усложняется и ослабляется оптимизатор, а валидатор кода в большинстве случаев вобще курит.
Safe-языки в LLVM делаются не просто, а очень просто. Достаточно запретить использование инструкции каста к указателям и явного удаления памяти.
Кстати, с точки зрения оптимизатора LLVM, safe и unsafe различаются очень немногим — почти что только более богатыми возможностями alias analysis в safe-языках.
Верификатор — это уже отдельный разговор.
C>>На Питоне очень удобно скрипты писать, так что не надо. WH>На один экран кода и чтобы управляли чемто намного болие тяжолым. Иначе в морг.
Ну да, у меня таких скриптов полно — мелкие задачи замечательно оптимизируются. Еще для build-системы тоже очень неплохо подходит (использую Waf).
C>>А на С++ для девайсов тоже очень все неплохо пишется. WH>Можно лучше.
Можно. Но пока не сделано.
C>>Так JIT в .NET тоже не помогает WH>Ибо какойто 3.1415(скорей всего маркетойд) принял решение драть ВМ с жабы. WH>Если бы думали головой, а не лозунгом "догнать и перегнать сан" то все можно былобы сделать много лучше.
Не получится. Без перекомпиляции налету с возможностью деоптимизации (ключевой пункт) многие возможности оптимизации просто невозможны.
Для банального устранения виртуальности нужно уметь делать деоптимизацию, если вдруг у нас динамически загружается сборка и оптимизация проваливается.
C>>Беты 1.7 работают в некоторых моих тестах ОЧЕНЬ быстро. WH>Быстрее чем Intel C++? На тестах которые не получают преимущества от использования ГЦ?
На чисто числодробительных задачах — не проверял. Но тут, собственно, ни один JIT не поможет — компилировать одну сборку полчаса при загрузке будет недопустимо. А вот HotSpot как может зарулить — просто запускаем движок оптимизации на соседнем ядре (Intel аннонсировал 8-ядерный процессоры, выполняющие по 16 параллельных тредов) и пусть себе там думает.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, IT, Вы писали:
IT>>А если выводить тип приватных методов?
VD>Язык переживет. Тормозов только будет по больше. Для IDE — это будет полный кабждец. Прейдется перекомпилировать на каждый чих все приватные методы. Точнее все, так как их и выделить то нельзя.