http://demin.ws/blog/russian/2012/07/03 … aster-cpp/
Может ли Java быть быстрее C++?
"Лет несколько назад (~2010) кто-то из буржуев проводил исследование _реальных_ проектов, написанных на ЦПП и жабе. Подчеркну, не кубических дельфинов к серное кислоте, а реальных проектов. Жаба сильно выиграла! Поскольку результат был не вполне очевидный, народ стал разбираться, чем это вызвано."
В момент выполнения имеется/видно гораздо больше информации об обрабатываемых данных.
"виртуальная машина знает аппаратную специфику системы, весь набор команд,
так же она знает наиболее часто используемые ветви исполнения и конкретные
классы объектов из иерархии (для случая полиморфизма), выпиливание
синхронизации если куском кода пользуется только один поток, меняет политики использования
объекта синхронизации в зависимости вида конкуренции между потоками, быстрое
создание объектов - без страха дальнейшей фрагментации heap, работа с учётом Numa."
https://habrahabr.ru/post/305894/
https://habrahabr.ru/post/254831/
"Время работы JIT компилятора не должно учитываться, т.к. в реальных приложениях, которые работают не пару секунд, оно будет занимать доли процента от общего времени работы программы, если оно влияет, то тест не "real world" и бесполезен."
"необходимо полторы тысячи вызовов метода для его генерации в нативный код,
и он должен быть коротким чтобы инлайниться куда-то (около 15 тысяч обращений к методу перед попыткой заинлайнить)"
У меня смутное ощущение, что я не вижу существенной разницы с предлагаемым в Канторе. Разный код для конкретных данных - это как раз та самая частичная специализация по результатам профилирования.
Отредактировано Лис (2017-03-28 11:29:40)