?

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
wizzard0 May 16th, 2016
мнэээ, у меня hard realtime, там нельзя arbitrary precision по определению

ex_juan_gan May 16th, 2016
Ну тогда, конечно, по модулю - остается только выбрать нужный модуль. В вашем риалтайме реальной время с календаря тоже запрещено? Ведь оно не ограничено (кроме как жизнью вселенной).

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

а так-то там нода работает ограниченное время и потом ее recycle'ят, и на это время где-то 35 бит из int64 логического времени должно хватить.

ex_juan_gan May 17th, 2016
А, вот и подошли к реалистической модели.

blackyblack May 17th, 2016
Время с календаря не гарантирует уникальности этого "счётчика".

  • 1