How does memory manager work?
Difference between en1 and ru1, changed 1,108 character(s)
Recently, one guy posted [thisНедавно наткнулся на [этот](http://mirror.codeforces.com/blog/entry/46712) blog, and couldn't understand what was really wrong with his code. It turns out that his code was wrong anyway, but I've noticed one thing:↵

Take a look at these two submissions
пост, где человек не мог понять, в чём у него ошибка. Конкретно его ошибку не нашёл, на моём компе это выглядело как вечный цикл, но я заметил вот что:↵

Взгляните на эти две посылки
: [TL](http://mirror.codeforces.com/contest/16/submission/20042469) andи [OK](http://mirror.codeforces.com/contest/16/submission/20042471).↵

In both solutions I am using self-written vector class, but the difference between these two codes, obviously is that in the **OK** code I do not use the `delete[]` operator, thus it takes less time to destruct my class, but doesn't free the memory on destruction (which can be seen by memory taken by solution).↵

Solutions take about this much time on my machine:↵

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

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

~~~~~↵
Без векторов
             | 248ms↵
Vects with no destruction: 370ms↵
Vects with destruction:
Вектора без деструктора  | 370ms↵
Вектора с деструктором
   | 948ms ↵
~~~~~↵

The question stands: Why is delete[] operation so slow and where can I read about memory manager in c++? Google only leads me to things like "writing your own memory manager in c++" which is actually interesting, but unfortunately hard to read and that's not exactly the case I'm looking forВопрос в том, почему оператор `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)