Size: a a a

Programming Offtop

2020 June 02

AE

Alexandr Emelyanov in Programming Offtop
источник

ДЮ

Давид Юрьев... in Programming Offtop
В продаже ПРОМЫШЛЕННЫЙ (не питьевой!) абсолютированный спирт. Имеет широкую область применения, используется в производстве антисептиков и дезинфекторов.
Без посредников! Отправка продукта ОПТОМ с заводов Орск, Дзержинск, Новочебоксарск.
Безналичный расчёт с НДС.
По всем вопросам: @produkt_2020
источник

D

Denys in Programming Offtop
источник

O

OlegKrikun in Programming Offtop
Переслано от OlegKrikun
источник

AK

Anton Korotkikh in Programming Offtop
(
тс
фу, брось каку!
источник

VS

Victor Shamparov in Programming Offtop
Mikhail Levchenko
а что больше всего отнимает?
Сорри за некропостинг, но попробую ответить (хотя и больше не про javac): как показывает мой опыт с C/C++ компиляторами, больше всего времени занимают оптимизации. И часть из них в параллели не запустить, так как они работают на уровне модуля или вообще всей программы. Зато оптимизации уровня процедуры и ниже как раз хорошо параллелятся.
Теперь о java: там же есть AOT javac и JIT. То есть часть оптимизаций (тех, кто занимает мало времени - peephole и подобных) уходит в JIT, но самые алгоритмически сложные должны остаться в AOT. Так что имхо и в javac большую часть времени занимают оптимизации, хотя их доля и меньше, чем в C/C++.
источник

QH

Quantum Harmonizer in Programming Offtop
Victor Shamparov
Сорри за некропостинг, но попробую ответить (хотя и больше не про javac): как показывает мой опыт с C/C++ компиляторами, больше всего времени занимают оптимизации. И часть из них в параллели не запустить, так как они работают на уровне модуля или вообще всей программы. Зато оптимизации уровня процедуры и ниже как раз хорошо параллелятся.
Теперь о java: там же есть AOT javac и JIT. То есть часть оптимизаций (тех, кто занимает мало времени - peephole и подобных) уходит в JIT, но самые алгоритмически сложные должны остаться в AOT. Так что имхо и в javac большую часть времени занимают оптимизации, хотя их доля и меньше, чем в C/C++.
Да их там практически нет. Байт-код — почти неискажённое отражение исходников.
источник

VS

Victor Shamparov in Programming Offtop
Quantum Harmonizer
Да их там практически нет. Байт-код — почти неискажённое отражение исходников.
Даже инлайна?
источник

VS

Victor Shamparov in Programming Offtop
Ну ладно, значит, моя экстраполяция не удалась.
источник

BP

Bogdan Panchenko in Programming Offtop
Victor Shamparov
Сорри за некропостинг, но попробую ответить (хотя и больше не про javac): как показывает мой опыт с C/C++ компиляторами, больше всего времени занимают оптимизации. И часть из них в параллели не запустить, так как они работают на уровне модуля или вообще всей программы. Зато оптимизации уровня процедуры и ниже как раз хорошо параллелятся.
Теперь о java: там же есть AOT javac и JIT. То есть часть оптимизаций (тех, кто занимает мало времени - peephole и подобных) уходит в JIT, но самые алгоритмически сложные должны остаться в AOT. Так что имхо и в javac большую часть времени занимают оптимизации, хотя их доля и меньше, чем в C/C++.
самые жосткие оптимизации как раз в JIT
источник

ML

Mikhail Levchenko in Programming Offtop
Вот кстати ни в kotlin ни в javac я не нашел инструментов профилировки билда
источник

BP

Bogdan Panchenko in Programming Offtop
у вас есть информация об устройстве на котором вы выполняете код - можно делать специфические оптимизации под платформу.

Это один из примеров это емножко сложней
источник

VS

Victor Shamparov in Programming Offtop
Bogdan Panchenko
самые жосткие оптимизации как раз в JIT
Они жёсткие в реализации, но к ним ключевое требование - время компиляции. Так что алгоритмически сложные оптимизации туда не запихнёшь.
источник

ML

Mikhail Levchenko in Programming Offtop
Было бы очень интересно посмотреть на что затрачено время. kapt мы посадили давно на диету, он уже не особо занимает время. compileKotlin намба ван таска в отчётах гредла
источник

VS

Victor Shamparov in Programming Offtop
Bogdan Panchenko
у вас есть информация об устройстве на котором вы выполняете код - можно делать специфические оптимизации под платформу.

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

BP

Bogdan Panchenko in Programming Offtop
Victor Shamparov
Не, ну наличие профиля и инфы о проце несомненно хорошо. Но это как раз средства улучшить простые оптимизации.
ну как вам сказать. Учитывая что под жавовым AOT понимается байткод который интерпретируется, то его как ни оптимизирую обычный jit будет быстрей. Реальный AOT (есть проекты) реально делают куча оптимизаций, но и времяф билда увеличивается
источник

BP

Bogdan Panchenko in Programming Offtop
Victor Shamparov
Даже инлайна?
он делается JIT-ом
источник

BP

Bogdan Panchenko in Programming Offtop
Mikhail Levchenko
Было бы очень интересно посмотреть на что затрачено время. kapt мы посадили давно на диету, он уже не особо занимает время. compileKotlin намба ван таска в отчётах гредла
на майниг же 🌚
источник

I

Igor in Programming Offtop
пробовал 2.2-dev та же самая ошибка
источник

VS

Victor Shamparov in Programming Offtop
Bogdan Panchenko
ну как вам сказать. Учитывая что под жавовым AOT понимается байткод который интерпретируется, то его как ни оптимизирую обычный jit будет быстрей. Реальный AOT (есть проекты) реально делают куча оптимизаций, но и времяф билда увеличивается
Так. Хотя я с Вами не согласен в понимании слова AOT, но имею что сказать о качестве оптимизации. Если сравнивать AOT и JIT, то ключевые отличия состоят вот в чём:
1. У JIT жёсткое ограничение по времени компиляции. Из-за этого часть оптимизаций неприменима (гуглите например struct-reorg gcc, в межпроцедурной версии она долгая).
2. В режиме по умолчанию JIT имеет информацию о профиле и целевой архитектуре. Но AOT её тоже может иметь, если программист заморочится, соберёт профиль и даст опцию о целевой архитектуре.
Таким образом, если искать в принципе максимальной производительности, то имхо нужно использовать AOT с перечисленными мной наворотами, а если хочется приличной производительности при минимуме усилий, то лучше JIT.
источник