Виділення пам’яті в програмі
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.
Зацікавила тема виділення пам’яті в программі різними методaми:
1. new () /delete — с++
2. malloc/free — c
Розмір пам’ятті для виділення був одинаковий. 500 мб.
Тестування проводилось на кількох комп’ютерах з різними типами памяті (ddr2, ddr3) і різною частотою пам’яті.
Виділення пам’яті першим методом з використання new () /delete на компютерах з більш швидкою пам’яттю дало в 2 рази гірші результати ніж на комп’ютерах з менш швидкою пам’яттю. Тип пам’яти був однаковий — ddr3 лише швидкодія інша.
Виділення памяті другим методом з використанням malloc/free дало більш менш очікувані результати. На компютерах з більш швидкодіючою пам’яттю час виділення памяті був менший в 2 рази ніж на компютерах з меншою швидкодією пам’яті.
На компютері з більш швидкою пам’яттю другий метод виділення пам’яті показав результат в 5 раз кращий ніж перший метод. Аналогічно швидкодія збільшилась і на компі з менш швидкою пам’яттю але лише у 2 рази в порівнянні з першим методом.
Назріває питання. Чому?
PS: Компілятор — ms visual studio 2005
При використанні компілятора від intel, і компілюванні программи під конкретний процесор результати відрізнялись в 3 рази.
40 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів