tgoop.com/csharp_gepard/79
Last Update:
Логирование и память #решение #память
Недавно разбирался со скоростью работы логирования, а также с тем, сколько логер потребляет памяти.
Эта подсистема не бесплатная и может влиять на производительность. Увы, от логов отказаться нельзя, поэтому хотелось бы всё-таки понять, как писать их быстро и экономно по памяти.
В качестве подопытного кролика выбрал Serilog, как наиболее часто используемую в разных проектах.
Победил чистый Serilog.ILogger
, без прослойки в виде Microsoft.Extensions.Logging.ILogger
. И дело не в скорости (она почти одинаковая), а в аллокации - у чистого Serilog она чуть меньше.
Однако, самым удивительным для меня оказалось то, что простое использование логгера было даже чуть экономичнее аналогов из советов про High-performance logging (ну все эти LoggerMessage.Define
и LoggerMessageAttribute). Почему так получилось - понять с наскока не удалось.
Бенчмарк в комментариях.
P.S.: Для специалистов: писал просто в консоль через ConsoleSink
, без изысков, поэтому цифры вот такие.
BY C# Heppard

Share with your friend now:
tgoop.com/csharp_gepard/79