How does memory manager work?

Revision ru1, by UnknownNooby, 2016-08-22 18:54:48

Недавно наткнулся на этот пост, где человек не мог понять, в чём у него ошибка. Конкретно его ошибку не нашёл, на моём компе это выглядело как вечный цикл, но я заметил вот что:

Взгляните на эти две посылки: TL и OK.

И в той и в другой посылке используется самописный вектор, но разница в том, что в OK посылке не используется оператор delete[] в деструкторе, потому деструктор работает значительно быстрее, но при этом не освобождает память (что можно заметить, посмотрев в графу память).

На моей машине рантайм примерно такой:

Без векторов             | 248ms
Вектора без деструктора  | 370ms
Вектора с деструктором   | 948ms 

Вопрос в том, почему оператор delete[] работает так медленно, и может ли кто-то дать линк, где можно прочитать об этом? Гугл ведёт на линки уровня "напишем свой менеджер памяти на c++", что, несомненно, интересно, но это не совсем то, что я пытаюсь найти.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru1 Russian UnknownNooby 2016-08-22 18:54:48 1108 Первая редакция перевода на Русский
en1 English UnknownNooby 2016-08-22 12:46:36 1191 Initial revision (published)