Size: a a a

Оправдания от Олега

2018 March 07

KG

Konstantin Gagarin in Оправдания от Олега
Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀
генеришь вот тут проект - http://start.spring.io
вот тут момент
источник

KG

Konstantin Gagarin in Оправдания от Олега
не все там так быстро как хотелось бы
источник

JK

Jurijs Kolomijecs in Оправдания от Олега
ID:498055820
я видел есть биндинги чтобы использовать Gtk на Java, это выглядит более интересным чем JavaFX
А как же кедерасты? Ты о них подумал?
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
Вы же в курсе о проекте Метрополис? Что в ближайшие лет 5 джаву постараются переписать на джаве, и выбросить C++ код?
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
Так зачем же притаскивать в проект какие-то биндинги до сишных либ? Всё это си (и другие не-JVM вещи) нужно выпинывать как можно сильней
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
Ладно бы оно там для супер оптимизаций использовалось. Но для того, чтобы квадратики на канвасе рисовать?
источник

NK

ID:498055820 in Оправдания от Олега
что-то страшно за перфоманс в Java on Java или я что-то не так понял
источник

NK

ID:498055820 in Оправдания от Олега
она и сейчас не ахти
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
покажи пример, где она сейчас не ахти. Сейчас у джавы C2 - это самый крутой JIT-компилятор вообще (есть LLVM, но у LLVM медленая компиляция за счёт мощных оптимизаций, и это сказывается на перфомансе)
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
можешь прям микробенчмарк дать
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
у LLVM и интеловского компилятора лучше разворачивание циклов. Можно у Владимира Иванова поинтересоваться, как там дела
источник

NK

ID:498055820 in Оправдания от Олега
может ты и прав, а виноваты те, кто пишет медленные приложения
источник

NK

ID:498055820 in Оправдания от Олега
по крайней мере в бенчмарках у джавы все хорого
источник

J🎩

JBaruch 🎩 in Оправдания от Олега
ID:498055820
по крайней мере в бенчмарках у джавы все хорого
а где у джавы всё плохо?
источник

AW

Alex White in Оправдания от Олега
Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀
покажи пример, где она сейчас не ахти. Сейчас у джавы C2 - это самый крутой JIT-компилятор вообще (есть LLVM, но у LLVM медленая компиляция за счёт мощных оптимизаций, и это сказывается на перфомансе)
Оверхед можно затоптать порогами срабатывания, например
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
Alex White
Оверхед можно затоптать порогами срабатывания, например
По-умолчанию есть четыре уровня оптимизации

level 0 - interpreter
level 1 - C1 with full optimization (no profiling)
level 2 - C1 with invocation and backedge counters
level 3 - C1 with full profiling (level 2 + MDO)
level 4 - C2

если добавить ключик запуска  "java -XX:-TieredCompilation -XX:CompileThreashold=100" (по умолчанию то ли 1300, то ли 1500 - лень смотреть).
то Tiered Compilation отключается, и код будет находиться в двух состояниях - или выполняться под интерпретатором, или сразу уходить в C2 (при достижении порога)

есть ещё пара флагов: -XX:TieredStopAtLevel=1 (название говорит само за себя), и есть -Xint (выполняться будет под голым интерпретатором)
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
ID:498055820
может ты и прав, а виноваты те, кто пишет медленные приложения
но согласись же, есть в этом особый индусский шарм - можно писать как попало хреново, и тебе за это (почти) ничего не будет =)
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
@spacemonkeydelivers проверил пороги на Десятке:

java -XX:+PrintFlagsFinal -version | grep CompileThreshold
    intx CompileThreshold                         = 10000                                 {pd product} {default}
  double CompileThresholdScaling                  = 1.000000                                 {product} {default}
   uintx IncreaseFirstTierCompileThresholdAt      = 50                                       {product} {default}
    intx Tier2CompileThreshold                    = 0                                        {product} {default}
    intx Tier3AOTCompileThreshold                 = 15000                                    {product} {default}
    intx Tier3CompileThreshold                    = 2000                                     {product} {default}
    intx Tier4CompileThreshold                    = 15000                                    {product} {default}
openjdk version "10" 2018-03-20
OpenJDK Runtime Environment 18.3 (build 10+45)
OpenJDK 64-Bit Server VM 18.3 (build 10+45, mixed mode)
источник

OC

Oleg Chirukhin ☄️ 🧙🏻‍♂️🚀 in Оправдания от Олега
Думаю, что если сказать вообще всё скомпилировать в Tier 4 с порогом 1, да ещё и выставить компилятором выставить Graal, а не C2, то это будет занимать как компиляция обычного С++ - всю ночь )))
источник

AW

Alex White in Оправдания от Олега
Я про то, что можно заюзать более мощный жит от ллвм, и чтобы иметь +- такой же оверхед, нужно поднять пороги срабатывания выше
источник