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

Dec 29, 2013 18:02

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

fp, erlyvideo, erlang

Leave a comment

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

levgem December 30 2013, 05:34:32 UTC
Я не могу вот так сходу согласиться с тобой, потому что в го память не изолирована по горутинам, а шарится между ними.

Для того, что бы согласиться, надо что бы я сначала увидел, как утечка ищется в выделенных 20 гигабайтах под нагрузкой.

Reply

krasin December 31 2013, 08:51:19 UTC
У меня был (ограниченный, но успешный) опыт поиска утечек в программе на Go. Утекало что-то под 8 гигабайт, дальше просто слишком медленно всё становилось.

Встроенная рудиментарная интроспекция происходящего в процессе сильно помогает. Во-первых, он выдает прямо по http статистику кучи: сколько байт аллоцировано какой строчкой кода (или вроде того) вместе с примерами стек-трейсов. Во-вторых, можно смотреть в каком месте процесс обычно проводит время (при выделении очередного куска памяти в запущенном случае всё подтормаживает и такой стек легко видеть глазами).

Но пока явно рантайм в Эрланге куда более развит в эту сторону. Возможно, через несколько лет, команда Go чего-нибудь допилит.

Reply

levgem January 3 2014, 06:19:38 UTC
под «процесс» ты имеешь ввиду горутину?

Reply


Leave a comment

Up