Программистское

Dec 29, 2013 18:02

Вот уже 4 года я развиваю софтину эрливидео. За последний год моя софтина подросла начала кормить уже 8 человек в разных частях света ( Read more... )

fp, erlyvideo, erlang

Leave a comment

Comments 45

ext_1303485 December 29 2013, 18:01:58 UTC
Спрашивал у наших Go программистов, как они ищут проблемы с памятью, говорят делают снимок памяти в файл по сигналу/по команде в сокет, потом его какими-то просмотрщиками смотрят. В Erlang с этим несравнимо проще, как ни крути.

Reply

levgem December 29 2013, 18:04:16 UTC
Снимок памяти на 20 гигабайт? ну-ну!

Reply

thedeemon December 30 2013, 05:04:07 UTC
Go столько не поднимет. Там вроде не generational GC, одна итерация сборки будет полдня занимать.

Reply

antage December 30 2013, 00:56:41 UTC
http://blog.golang.org/profiling-go-programs
http://golang.org/pkg/net/http/pprof/

Можно подрубиться к приложению в продакшене и посмотреть какой код сколько аллоцировал памяти. Утечки находятся на раз.

Reply


_windwalker_ December 29 2013, 18:27:36 UTC
В жабе на живой JVM можно снять всякие метрики при помощи jhat / jmap.

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

А с хип дампами при размере хипа больше 10G как-то ой.

Reply

levgem December 29 2013, 19:37:40 UTC
проблема с мапами в том, что в эрланге можно всю память разделить по процессам и посмотреть, какая именно логическая зона жрет данные, а в джаве нет.

Например, последние три утечки были связаны с тем, что в процессе накапливался гигантский список из небольших фреймов. Что будет видно в дереве объектов? Что есть какие-то большие Array, причем непонятно какие из них легитимные, а какие нет и есть очень много объектов VideoFrame.

А в эрланге сразу ясно, какой процесс капризничает.

Reply

_windwalker_ December 31 2013, 02:56:24 UTC
ну в пределах одной JVM нет множества процессов, есть множество threads, которые в большинстве случаев будут крутит один и тот же код, так что утечки будут более-менее единообразными.

К сожаление, не знаю что значит - в эрланге зоны разделить по процессам.

Неужели у всех запушенных VM эрланга общее адресное пространство ?

Reply


trailmax December 29 2013, 19:34:50 UTC
еще думаю, _приличных_ программистов на erlang найти куда проще чем _приличных_ на похапе. Пробема может быть что на эрланге просто не много программистов, зато много приличных -)

Reply

levgem December 29 2013, 19:36:06 UTC
Это известное наблюдение.

Найти хорошего PHPшника сложно, потому что нужно мощное корпоративное сито.

Reply


(The comment has been removed)

lionet December 30 2013, 03:17:56 UTC
Немудрено быть быстрее эрланга - он как питон сам по себе. Я удивлён, что хаскель "в некоторых местах" будет, а не "для большинства".

Reply

levgem December 30 2013, 05:36:46 UTC
На моей практике всё не так просто. Светозарная Java с её JIT ничуть не быстрее эрланга на моих задачах.

Reply

lionet December 30 2013, 05:40:41 UTC
Отдельные аспекты эрланга акселерированы его VM'ом (типа буферных всяких штучек). Если их не бенчмаркать, джава быстрее.

Но у тебя задача подразумевает именно их.

Reply


olegsmith January 2 2014, 18:37:53 UTC
http://benchmarksgame.alioth.debian.org/u64q/erlang.php
какие мнения на этот счет?

Reply

levgem January 2 2014, 18:45:36 UTC
Реальное программирование состоит не из синтетических тестов, а из окупаемости отдела разработки.

Java быстрее эрланга там, где её не имеет смысл брать, потому что вместо неё надо брать либо C/C++. Ну чем надо руководствоваться, что бы делать например распознавание образов на Java, когда там и голый C плохо справляется?

Reply

olegsmith January 2 2014, 20:00:08 UTC
Тесты имхо самые реальные ( ... )

Reply

levgem January 2 2014, 21:15:22 UTC
Мне нечего тут комментировать. В каждом пункте просто голословные утверждения. Я же говорю только про свой опыт, который я подтверждаю своими деньгами.

Reply


Leave a comment

Up