?

Log in

No account? Create an account
Previous Entry Share Next Entry
2016-01

640k is enough for everyone

сделал я значит логгер, с сообщениями пронумерованными как int32

и решил показать в дашборде последнее сообщение лога.
запустил, долго думал "где же баг" - вместо номера сообщения какой-то случайный мусор :)

потом осознал, что бага нет, а логгер в тесте

while(true) { log("HELLO") }

выдаёт сколько-то там миллионов RPS и лепить в счетчик int32 было как-то, хмм, опрометчиво, потому что переполняется он мгновенно :) хороший логгер получился, короче.

This entry was originally posted at http://wizzard.dreamwidth.org/472745.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
mbr May 17th, 2016
Изначально кольцевые буферы использовались для символьных устройств - т.е. когда размер данных одинаков. В случае разной длины лучше использовать указатели на структуру или выбрать другую модель реализации. Например, гугловские bip буферы.

wizzard0 May 17th, 2016
...или делать буфер блоков

mbr May 17th, 2016
Не. Медленно, геморройно, фрагментация.

wizzard0 May 17th, 2016
я имею в виду случай, когда сообщение переменного, но конечного размера.

если бесконечного, тогда да, гемор всегда

  • 1