Pull to refresh

Comments 10

а прибивать гвоздями процесс к сокету в 1.7 так же нужно будет или рантайм это делает автоматом?
в 1.7 не нужно, вот тут как раз автор статьи зарепортил о своей проблеме с NUMA-доступом – часть работы, влияющей на длительность STW, перенесли в параллельную(конкуррентную) фазу и я так понял даже mbind в итоге не потребовался, чтобы значительно уменьшить длительность паузы.
Круто. А что за проблема с пропускной способностью? Или про это последний абзац
Да, это про последний абзац, вот цитата из документа Transaction Oriented Collector:

Our new transaction oriented collector or TOC algorithm focuses attention on these objects thus improving overall GC throughput and scalability while delaying the need to do a full heap GC.

Но, честно говоря, я сам в этот документ пока не вникал – знал только о его недавнем появлении:)
>>Для её создания использовались пререлизные версии Go 1.2, и система была способна одновременно обслуживать до 500 000 пользователей с каждого физического хоста без особых ухищрений.

Интересно, сколько сейчас у них.
>> Приложение останавливалось на десятки секунд при каждом запуске сборщика, а это было недопустимо для нашего интерактивного чат-сервиса.
и
>> Мало того что каждая пауза на сборку мусора обходилась очень дорого, так ещё и сборка запускалась по несколько раз в минуту.

А полезной работой интерактивный чат-сервис вообще занимался?
Ну не думаю, что они долго в таком режиме проработали в бою:) Не секрет, что в ранних версиях Go массово аллоцирующим приложениям приходилось тяжко — приходилось переиспользовать все, что только можно, не использовать слайсы и указатели — заменять их массивами и копированием, чтобы не вызывать лишних аллокаций в куче. В прошлом году, когда по большому счету только начинал знакомство с Go, я попал на доклад «Go в Badoo» на московском митапе – отличный доклад и яркий пример борьбы с паузами GC в продакшене.
просто по несколько секунд несколько раз в минуту это и 10 раз по 6 секунд, и 6 раз по десять и 7 раз по 9… Тут не про Go, а про другой язык, что-то у меня не компилируется смысл…
Поправьте если ошибаюсь: получается Go 1.7 очень даже неплох для gamedev'а?
Раньше, насколько знаю, именно паузы gc (читай = просадки fps и микрофризы) были главной проблемой, с которой так или иначе сталкивались разработчики. А с паузами порядка 1мс, КМК, проблема перестает быть проблемой, или я что-то упускаю?
Смотря для чего в геймдеве использовать. Графику все равно нужно ближе к железу держать. А вот логику писать на Go было бы прекрасно. В Unity, например, используется C# и ничего. Но Go пойдет в геймдев не раньше чем появятся тулы и движки его поддерживающие. Типа того же Unity.
Sign up to leave a comment.