Pull to refresh

Comments 4

Количество задач, которые выполняются файберами, огромно — десятки тысяч в секунду. Поэтому добавлять ещё одну абстракцию, которая, как мне кажется, ещё и GC нагружает, не было смысла. Абстракция файберов гораздо тоньше, если так можно выразится.

Такие вещи надо мерять. Вот, например:


IFiberAction — это эксперимент по сокращению нагрузки на GC. Мы не можем управлять процессом создания экшенов в .NET. Поэтому было решено заменить стандартные экшены на экземпляры класса, который реализует интерфейс IFiberAction. Предполагается, что экземпляры таких классов достаются из пула объектов и возвращаются туда сразу же после завершения. Этим и достигается снижение нагрузки на GC.

Есть бенчмарки до/после?

Бенчмарки мы, конечно же, делали, но с точки зрения пинга. Было видно, что он уменьшился буквально миллисекунд на 5, т.е. был 60-65, стал 55-60. Не слишком много.
Измерения делались давно, поэтому сейчас что-либо вменяемое предоставить не могу
Бенчмарки мы, конечно же, делали, но с точки зрения пинга. Было видно, что он уменьшился буквально миллисекунд на 5, т.е. был 60-65, стал 55-60.

Я, наверное, чего-то фундаментально не понимаю в происходящем, если у вас уменьшение нагрузки на GC привело к уменьшению пинга.

Да, именно так. GC же не бесплатно делает свою работу. И с ним вообще шутки плохи. Буквально несколько месяцев назад сократили пики пинга с 150 ms до 70, облегчив работу GC.

В качестве дополнения к ответу на первый комментарий, да мерять обязательно нужно.
Sign up to leave a comment.

Articles