LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

memset. Забить 512 последовательных байтов нулями это очень быстро. Ничего быстрей ты просто не придумаешь. И на O(1) не надо кивать, в данном случае у нас жёстко ограничено число элементов, поэтому смысл O-нотации теряется, есть смысл рассуждать только о реальной производительности.

Чисто теоретически можно ввести ещё впереди маску из одного uint64_t, который будет означать, инициализирован ли соответствующий 8-байтовый кусок. Тогда очистка сведётся к обнулению этой маски, но все остальные операции должны будут проходить через неё. Если прям очистка постоянно производится, в этом есть смысл.

Исправление Legioner, :

memset. Забить 512 последовательных байтов нулями это очень быстро. Ничего быстрей ты просто не придумаешь. И на O(1) не надо кивать, в данном случае у нас жёстко ограничено число элементов, поэтому смысл O-нотации теряется, есть смысл рассуждать только о реальной производительности.

Исправление Legioner, :

memset. Забить 512 байтов нулями это очень быстро. Ничего быстрей ты просто не придумаешь. И на O(1) не надо кивать, в данном случае у нас жёстко ограничено число элементов, поэтому смысл O-нотации теряется, есть смысл рассуждать только о реальной производительности.

Исправление Legioner, :

memcpy. Забить 512 байтов нулями это очень быстро. Ничего быстрей ты просто не придумаешь. И на O(1) не надо кивать, в данном случае у нас жёстко ограничено число элементов, поэтому смысл O-нотации теряется, есть смысл рассуждать только о реальной производительности.

Исправление Legioner, :

memcpy. Забить 512 байтов нулями это очень быстро. Ничего быстрей ты просто не придумаешь. И на O(1) не надо кивать, в данном случае у нас жёстко ограничено число элементов, поэтому смысл O-нотации теряется.

Исходная версия Legioner, :

memcpy. Забить 512 байтов нулями это очень быстро. Ничего быстрей ты просто не придумаешь.