Size: a a a

2018 July 03

ПФ

Паша Финкельштейн in graalvm_ru
Я начал, но не закончил
источник

ПФ

Паша Финкельштейн in graalvm_ru
Я правда не asm смотрел, а что-то ещё
источник

ПФ

Паша Финкельштейн in graalvm_ru
Oleg Shelajev
сейчас попробую, сорри вчера не дошли руки
Что значит "сорри"? Ты тут добровольно, ничего не должен )))
источник

OS

Oleg Shelajev in graalvm_ru
Result "org.graalvm.demos.KotlinBemchmark.sequenceBenchmark":
 402966.657 ±(99.9%) 92627.573 ns/op [Average]
 (min, avg, max) = (144834.872, 402966.657, 1304971.616), stdev = 273114.507
 CI (99.9%): [310339.085, 495594.230] (assumes normal distribution)


# Run complete. Total time: 00:04:41

REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
experiments, perform baseline and negative tests that provide experimental control, make sure
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
Do not assume the numbers tell you what you want them to tell.

Benchmark                            (arrSz)  Mode  Cnt       Score        Error  Units
KotlinBemchmark.noSequenceBenchmark        0  avgt  100     533.272 ±    542.079  ns/op
KotlinBemchmark.noSequenceBenchmark        1  avgt  100    1286.337 ±    574.871  ns/op
KotlinBemchmark.noSequenceBenchmark       10  avgt  100    1445.131 ±    691.021  ns/op
KotlinBemchmark.noSequenceBenchmark      100  avgt  100   15943.713 ±   7702.008  ns/op
KotlinBemchmark.noSequenceBenchmark     1000  avgt  100  135842.840 ±  50431.436  ns/op
KotlinBemchmark.noSequenceBenchmark    10000  avgt  100  988083.030 ± 206282.435  ns/op
KotlinBemchmark.sequenceBenchmark          0  avgt  100       6.538 ±      0.531  ns/op
KotlinBemchmark.sequenceBenchmark          1  avgt  100      23.976 ±     22.915  ns/op
KotlinBemchmark.sequenceBenchmark         10  avgt  100      20.592 ±      1.691  ns/op
KotlinBemchmark.sequenceBenchmark        100  avgt  100    5569.891 ±   2937.071  ns/op
KotlinBemchmark.sequenceBenchmark       1000  avgt  100   45259.505 ±  17131.556  ns/op
KotlinBemchmark.sequenceBenchmark      10000  avgt  100  402966.657 ±  92627.573  ns/op
источник

OS

Oleg Shelajev in graalvm_ru
у меня вроде ничего не проваливается/супер-компилится
источник

ПФ

Паша Финкельштейн in graalvm_ru
А бейзлайн?
источник

OS

Oleg Shelajev in graalvm_ru
Benchmark                           (arrSz)  Mode  Cnt     Score     Error  Units
JavaSimpleStreamBenchmark.baseline        0  avgt  100     8.732 ±   1.554  ns/op
JavaSimpleStreamBenchmark.baseline        1  avgt  100    13.769 ±   1.388  ns/op
JavaSimpleStreamBenchmark.baseline       10  avgt  100    17.997 ±   2.201  ns/op
JavaSimpleStreamBenchmark.baseline      100  avgt  100    32.182 ±   2.726  ns/op
JavaSimpleStreamBenchmark.baseline     1000  avgt  100   159.934 ±  13.331  ns/op
JavaSimpleStreamBenchmark.baseline    10000  avgt  100  1813.228 ± 196.131  ns/op
источник

ПФ

Паша Финкельштейн in graalvm_ru
Это всё в одном ране?
источник

OS

Oleg Shelajev in graalvm_ru
net :)
источник

ПФ

Паша Финкельштейн in graalvm_ru
Считаешь мне надо ещё раз попробовать воспроизвести?
источник

ПФ

Паша Финкельштейн in graalvm_ru
Я даже не знаю что хуже - если воспроизведётся или если нет
источник

OS

Oleg Shelajev in graalvm_ru
я попробую
источник

OS

Oleg Shelajev in graalvm_ru
но ты тоже можешь попробовать
источник

ПФ

Паша Финкельштейн in graalvm_ru
По ходу общения люди уходят )))
источник

NK

ID:414983998 in graalvm_ru
Просто вы тут марсианские темы обсуждаете) граль пока сугубо для гиков)
источник

ПФ

Паша Финкельштейн in graalvm_ru
Вопрос в том, заечм они сюда пришли вообще. Это же заведомое гиконли
источник

NK

ID:414983998 in graalvm_ru
Кстати, тут недавно с Алоном Закаем обсуждали тему tail call optimization. Как оказалось такое умеет делать только babel (весьма топорно, просто разворачивая в цикл со вспомогательным стеком), Closure и хаскель, GCC со специальным флагом (C++ спека этого не требует). И по сути все. Java не делает, при чем по соображениям безопасности, так как меняется контекст исполнения. Я так понимаю граль тоже?
источник

ПФ

Паша Финкельштейн in graalvm_ru
ID:414983998
Кстати, тут недавно с Алоном Закаем обсуждали тему tail call optimization. Как оказалось такое умеет делать только babel (весьма топорно, просто разворачивая в цикл со вспомогательным стеком), Closure и хаскель, GCC со специальным флагом (C++ спека этого не требует). И по сути все. Java не делает, при чем по соображениям безопасности, так как меняется контекст исполнения. Я так понимаю граль тоже?
джава не делает, а вот котлин делает
источник

NK

ID:414983998 in graalvm_ru
Что Котлин для этого использует?
источник

ПФ

Паша Финкельштейн in graalvm_ru
так фиг ли, временную переменную создаёт с метод превращает в цикл )
источник