Информация об изменениях

Сообщение Re[3]: Почему не взлетел OCaml? от 06.02.2016 10:06

Изменено 06.02.2016 10:14 FR

Здравствуйте, monax, Вы писали:

M>До рантайма я ещё не добрался. А что с ним не так?


Основной недостаток не поддерживает SMP, одновременно может выполнятся только один поток.
То есть все что связано с потоками работает (тот же модуль Thread), но так как будто выполняется
на однопроцессорном и одноядерном компьютере.
Такой же недостаток есть скажем у питона с его GIL, или у nodejs.
Выход использовать вместо потоков процессы.

Второй большой недостаток ограниченность многих типов например max_int для 32 бит
всего лишь 1073741823, один бит данных забирает теговая система для GC. Еще сильнее
ограничения в размерах для массивов Sys.max_array_length всего лишь 4194303.
Все это конечно уже мало значимо для 64 бит, но для 32 это заметный недостаток.

Третий недостаток, который сильно повлиял на популярность по моему, это ориентированность
на unix образные системы, windows скорее по остаточному принципу, хотя в последнее
время с этим получше.

Ну и плюс очень бедная стандартная батарейка. Это немного исправляется библиотекой
http://batteries.forge.ocamlcore.org/
Re[3]: Почему не взлетел OCaml?
Здравствуйте, monax, Вы писали:

M>До рантайма я ещё не добрался. А что с ним не так?


Основной недостаток не поддерживает SMP, одновременно может выполнятся только один поток.
То есть все что связано с потоками работает (тот же модуль Thread), но так как будто выполняется
на однопроцессорном и одноядерном компьютере.
Такой же недостаток есть скажем у питона с его GIL, или у nodejs.
Выход использовать вместо потоков процессы.

Второй большой недостаток ограниченность многих типов например max_int для 32 бит
всего лишь 1073741823, один бит данных забирает теговая система для GC. Еще сильнее
ограничения в размерах для массивов Sys.max_array_length всего лишь 4194303.
Все это конечно уже мало значимо для 64 бит, но для 32 это заметный недостаток.

Третий недостаток, который сильно повлиял на популярность по моему, это ориентированность
на unix образные системы, windows скорее по остаточному принципу, хотя в последнее
время с этим получше.

Ну и плюс очень бедная стандартная библиотека. Это немного исправляется библиотекой
http://batteries.forge.ocamlcore.org/