С высоты-3

Jul 10, 2019 17:21


Пост вызвал некоторую дискуссию, в связи с чем я не перестаю удивляться, насколько людям кажется что мир устроен так как им хочется а не так как он устроен на самом деле. Многие живут мыслью что то что они (ну или я) пишу это не настоящая Кложа, а где-то там далеко есть настоящая, и если сильно припрет то взял type hints и поправил и так-то и пишут ( Read more... )

Leave a comment

Comments 29

vinslivins July 10 2019, 22:21:01 UTC
> Даже мантра «держи репл всегда запущенным» в общем-то про то, как бороться со тормозами на старте Кложи.

ДААААААААААААААА. хоть кто-то сказал.

Reply

vinslivins July 11 2019, 16:17:04 UTC
Да ладно... РЕПЛ это для того чтобы быть в контексте своей программы, а не в контексте текстового файла.
Сразу все хорошее забыли. На Никиту щас луна давит наверное.

Reply

vinslivins July 13 2019, 03:09:27 UTC
пожалейте больше себя: слово "репл" можно понимать в разных смыслах, и, в частности, в аспекте его (пере-)загрузки конкретно в кложе процесс забирает п-ц сколько времени.

Reply

vinslivins July 13 2019, 14:55:42 UTC
Ну, компиляция хоть сколько-нибудь большого проекта на том же расте или крестах (или скале) тоже занимает немало времени, к сожалению. Как и старт IDE, например, - но ведь никто на это не жалуется (не жалуется же?), а старт репла по смыслу как раз ближе к запуску IDE, чем к компиляции проекта.

Ну и имхо больше времени все-таки тратится на восстановление контекста и состояния, а не на запуск жвм как таковой.

Reply


vissarion July 11 2019, 02:51:07 UTC
Ещё есть такой эффект - JVM JIT оптимизирован только для паттернов которые выплёвывает javac
для байткода скалы, closure, и даже котлина C2 не вылизывают
если какие-то оптимизации JVM в рантайме случаются, они скорее случайны, когда совпадают с явовыми
поэтому код на Кложе не будет быстрый без ручного залезания в кишки вроде Unsafe и JNI
но Unsafe + Jni + Closure это уже не Closure
это функционально-ассемблерное программирование какое-то

Reply

binf July 11 2019, 07:15:28 UTC
функциАнальное программирование

Reply

tonsky July 11 2019, 10:00:45 UTC
просто на будущее, обратите внимание, в слове Clojure нет буквы S. Понимаю, легко не заметить, но и запомнить легко

Reply


urod July 11 2019, 07:24:39 UTC
Если вылизывать до перфекционизма, то уж на компилируемом языке - c++, d, rust - а ценой героических усилий оптимизировать кложу, чтобы она считала не в 30 раз медленнее раста, а только в 5 - это квадратное катим, круглое тащим.

Reply


anonymous July 12 2019, 07:58:02 UTC
Я вот решил освоить Clojure, повторил питоновский код и то, что по словам автора, работает на питоне 10 секунд, у меня на Clojure работает 1 час. Ну да, это алгебра, матрицы и всё вот это. Но я использую MXNet, Clojure вызывает биндинги Scala потом уже сишная либа, но похоже проблема в JVM. Посмотрел Flame Graph, у меня 70% времени GC работает. Если кто подскажет, как правильно на кложе ваять подобный код - буду премного благодарен. https://github.com/deem0n/deep-book-clojure

Reply

anonymous July 12 2019, 18:36:01 UTC
theiced July 14 2019, 07:04:09 UTC
https://deeplearning4j.org/docs/latest/nd4j-overview

тебе вот сюда. на моих задачах рвёт нампи в 3 раза (а там таки умножение матриц ;]).

Reply

theiced July 14 2019, 07:05:51 UTC
ps. я юзал https://github.com/hswick/jutsu.matrix вот сии биндинги, но их есть разных на разный вкус. ну и напрямую жаву дёргать никто не запрещает.

Reply


axyd80 July 22 2019, 16:01:26 UTC
Я помню год назад ты на производительность жаваскрипта жаловался, что интерфейсы тормозят. Недавно описал ограниченность веб-интерфейсов и невозмозность на вебе сделать что-то стоящее, нормальный красивый интерфейс. А тут как выяснилось и кложура тоже подтормаживает, на ней плохо комбинаторные задачи решать брут-форсом. Если так пойдет еще пару лет ты вообще на святое замахнешся.

Reply

vmenshov July 25 2019, 16:16:18 UTC
На что?

Reply


Leave a comment

Up