Здравствуйте, гость ( Вход | Регистрация )
|
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 |
|
|
|
![]() |
|
SABROG |
30.6.2009, 8:53
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Цитата(Tonal @ 30.6.2009, 8:15) Link и сделать тут ничего нельзя Цитата Как теперь выделенную вектору память распределить между маленькими векторами t.params? Это удобно при большом количестве однотипных векторов, но ведь это не отменяет возможности перевыделять память каждому такому векторку через resize в каком-нибудь цикле. Если размеры мелких векторов влияют на размер основного вектора, то сначала надо увеличить размер основного вектора скажем на 10000, а потом разделить эту сумму на количество мелких векторов. Если их 1000, то 10000/1000=10. Т.е. +10 к resize'у каждого мелкого Сообщение отредактировал SABROG - 30.6.2009, 8:54 |
|
|
|
AD Создание быстродействующего распределителя памяти 29.6.2009, 10:38
Tonal Интересно, в code2 при num_block <= 1000 t.para... 29.6.2009, 10:53
AD Цитата(Tonal)Интересно, в code2 при num_block ... 29.6.2009, 11:10
Litkevich Yuriy Цитата(AD @ 29.6.2009, 14:38) Выделять па... 29.6.2009, 11:36
AD Цитата(Litkevich Yuriy @ 29.6.2009, 12:36... 29.6.2009, 11:59
AD Очень прошу помочь. Как реализовать код для QVecto... 29.6.2009, 13:25
SABROG Кстати интересный класс есть QVarLengthArray, если... 29.6.2009, 11:43
Litkevich Yuriy Цитата(AD @ 29.6.2009, 17:25) Делать выде... 29.6.2009, 13:34
AD Цитата(Litkevich Yuriy @ 29.6.2009, 14:34... 29.6.2009, 14:05
Litkevich Yuriy по ссылке, что я привёл, дочитай до конца. Там ест... 29.6.2009, 15:19
AD Юра, мне непонятна одна конкретная вещь:
вот я в... 29.6.2009, 16:14
Litkevich Yuriy Цитата(AD @ 29.6.2009, 20:14) Как теперь ... 29.6.2009, 17:52
AD Цитата(Litkevich Yuriy @ 29.6.2009, 18:52... 29.6.2009, 18:02
BRE AD, прости, а можешь словами рассказать, что нужно... 29.6.2009, 19:18
AD code 1, code2 из первого примера - это рабочие ко... 29.6.2009, 22:01
Tonal Т.е. у тебя много маленьких векторочков.
В stl у ... 30.6.2009, 7:15
AD Цитата(Tonal)Т.е. у тебя много маленьких векторочк... 30.6.2009, 8:23
Tonal Цитата(AD @ 30.6.2009, 12:23) Цитата(Tona... 30.6.2009, 10:28
AD Цитата(Tonal @ 30.6.2009, 11:28) Ничего п... 30.6.2009, 10:41
BRE Как я понял задачу. Есть несколько конфигурационны... 30.6.2009, 8:45
AD Цитата(BRE @ 30.6.2009, 9:45) Как я понял... 30.6.2009, 9:03
BRE Цитата(AD @ 30.6.2009, 10:03) Есть ини-фа... 30.6.2009, 9:28
AD Цитата(BRE @ 30.6.2009, 10:28) Так может ... 30.6.2009, 9:31
Tonal Можешь написать свой, проще зацепить из буста.
Гд... 30.6.2009, 10:54
AD Цитата(Tonal @ 30.6.2009, 11:54) Можешь н... 30.6.2009, 11:11
AD да, кстати, а мне нужно наследоваться от стандартн... 30.6.2009, 12:09
AD Странно, как-то не очень помогло. Или я что-то заб... 30.6.2009, 14:09
BRE Цитата(AD @ 30.6.2009, 15:09) В чем еще м... 30.6.2009, 14:56
Tonal Цитата(AD @ 30.6.2009, 18:09) Странно, ка... 1.7.2009, 8:47
AD Цитата(Tonal @ 1.7.2009, 9:47) Ты выделяе... 1.7.2009, 9:05
AD В boost в файле allocator.hpp нашел следующий код:... 1.7.2009, 9:59
Tonal Цитата(AD @ 1.7.2009, 13:05) Цитата(Tonal... 1.7.2009, 10:44
AD Цитата(Tonal @ 1.7.2009, 11:44) Вот и смо... 1.7.2009, 10:50

AD Вот блин. Сделал следующий распределитель:
allocat... 1.7.2009, 14:55
AD Цитата(Tonal @ 1.7.2009, 11:44) Вот и смо... 13.7.2009, 11:40
Влад Хм, есть опасение, что если причиной разработки ал... 30.6.2009, 14:49
AD Влад, исходя из твоих слов, следует заменить глоба... 30.6.2009, 14:59
BRE Почитай вот эту тему. В конце есть готовый алокато... 1.7.2009, 10:37
BRE А ты в профилировщике результаты смотрел, точно им... 1.7.2009, 15:24
AD Цитата(BRE @ 1.7.2009, 16:24) А ты в проф... 1.7.2009, 15:57
Влад Цитата(AD @ 30.6.2009, 15:59) Влад, исход... 1.7.2009, 16:07
AD Цитата(Влад @ 1.7.2009, 17:07) Нет. Тут ф... 1.7.2009, 16:10
BRE Цитата(AD @ 1.7.2009, 17:10) Да, видимо, ... 1.7.2009, 16:49
AD У меня видоизменилась несколько структура, потому ... 1.7.2009, 17:14
AD Заметил такую странную вещь:
Указал CHUNK_SIZE = 2... 1.7.2009, 17:57
Tonal Может всё же так:
...
struct Chunk
{
Chunk* ne... 2.7.2009, 8:04
AD Цитата(Tonal @ 2.7.2009, 9:04) Да, ты вед... 2.7.2009, 9:11
AD Так.... совсем интересно. При загрузке большого ко... 2.7.2009, 10:51
Влад Видел: http://rsdn.ru/forum/cpp.applied/930448.asp... 2.7.2009, 13:38
AD Так, получилось ускорение с помощью массивов (пока... 3.7.2009, 12:00
AD Сделал распределитель памяти следующий:
allocator#... 6.7.2009, 17:36
AD Буду очень благодарен за любую помощь. Очень требу... 7.7.2009, 11:07
AD Так... Ну теперь я совсем не понимаю, почему при з... 8.7.2009, 12:12
AD Сделал так: вначале чтение всех файлов. Пихаем про... 9.7.2009, 17:10
Влад Цитатаbcp
Usage:
bcp --list [options] module-li... 13.7.2009, 11:59
AD Итак, сделал вырезку некоторых файлов из boost и д... 13.7.2009, 17:30![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 29.12.2025, 4:42 |