Создание быстродействующего распределителя памяти, для std::vector или замена глобальных операций выделения памяти |
Здравствуйте, гость ( Вход | Регистрация )
Создание быстродействующего распределителя памяти, для std::vector или замена глобальных операций выделения памяти |
AD |
29.6.2009, 10:38
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Раньше был обычный массив (динамический), который содержал значения определенных параметров, прочитанных из лог-файла (широта, долгота, скорость и пр.). Сейчас сделал в виде вектора. Вместо оператора new теперь использую resize. Но так как эти операции чересчур затратные (а цикл может содержать и 100000 итераций (где каждый раз происходит выделение)), то стало необходимо сделать алгоритм немного по-другому.
Выделять память блоками. Т.е. вместо след. операций: code1 Делать следующее: code2 При замене на QVector code1 перешел в следующий: code3
Как переписать code2 для использования в векторе QVector? Заранее благодарен за помощь.... Сообщение отредактировал AD - 30.6.2009, 15:08 |
|
|
Влад |
1.7.2009, 16:07
Сообщение
#2
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
|
|
|
AD |
1.7.2009, 16:10
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
BRE |
1.7.2009, 16:49
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Да, видимо, придется! А чем думаешь их заменить? В чем смысл? Еще раз проверил, все-таки притормаживает на выделении памяти! Попробуй задать в алокаторе такой размер, что бы все элементы гарантированно помещались в один chunk. И посмотри результаты в профилировщике. Странно все как-то. |
|
|
Текстовая версия | Сейчас: 28.1.2025, 20:43 |