История изменений
Исправление X512, (текущая версия) :
std::shared_ptr
Он создаёт дополнительные накладные расходы в виде дополнительного объекта на куче если я не ошибаюсь. Для ядра это не желательно.
shared_ptr has a significant overhead for creation because of it’s memory allocation for the control block (which keeps the ref counter and a pointer list to all weak references). It has also a huge memory overhead because of this and the fact that std::shared_ptr is always a 2 pointer tuple (one to the object, one to the control block).
If you pass a shared_pointer to a function as a value parameter then it will be at least 10 times slower then a normal call and create lots of codes in the code segment for the stack unwinding. If you pass it by reference you get an additional indirection which can be also pretty worse in terms of performance.
Исходная версия X512, :
std::shared_ptr
Он создаёт дополнительные накладные расходы в виде дополнительного объекта на куче если я не ошибаюсь. Для ядра это не желательно.