Тестирование менеджера памяти
Как известно, при выделении памяти malloc редко обращается напрямую к системе - и использует вместо этого свою внутреннюю структуру для динамического выделения памяти и изменения размера уже выделенного блока. Скорость работы этого внутреннего менеджера может весьма существенно влиять на скорость работы всего приложения. Тестирование менеджера памяти было разбито на две части: в первой измерялась скорость работы пары malloc/free, а во второй - malloc/realloc, причем realloc должен был выделить вдвое больший объем памяти, чем malloc.
Таблица 3. Результаты тестирования менеджера памяти | ||||
VC++ | Intel Compiler | Bulder C++ | MinGW (gcc) | |
malloc | 905 (6336) | 902 (6317) | 24 (174) | 882 (6178) |
realloc | 30 (718) | 30 (716) | 12 (295) | 30 (719) |
И снова быстрее всех был Borland Builder C++. Благодаря такой быстрой реализации malloc'а он находится на первом месте и по скорости создания/удаления объектов - да и на тестах STL, связанных с изменением размера блока памяти, бегает достаточно быстро.