Здравствуйте, гость ( Вход | Регистрация )
|
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 |
|
|
|
![]() |
|
Tonal |
2.7.2009, 8:04
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
Может всё же так:
Тогда размер Chunk::memory будет всегда кратен количеству элементов - не будут пропадать попусту невлезшие кусочки. Ну и размер chunk_size я бы поставил как среднее rec_descr.size() * 100, например. Да, ты ведь профилируешь релизную сборку, я надеюсь? |
|
|
|
|
AD |
2.7.2009, 9:11
Сообщение
#3
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(Tonal @ 2.7.2009, 9:04) Link Да, ты ведь профилируешь релизную сборку, я надеюсь? На счет профилировки хотел посоветоваться! Не помню как мне один раз удалось спрофилировать программу, но больше не удавалось. Причина следующая: файлы, которые генерирует MOC типа ui_tlv.h я создаю еще cpp, переношу туда setupUi, retranslateUi! Делаю это потому что кое-что изменяю в этих функциях! Так проблема в том, что при включенном профайлере компилятор каждый пересобирает проект, соответственно h-файлы все время пересоздаются и выдается куча ошибок. При попытке просто скомпилировать, он снова пересобирает проект. Есть способ победить эту штуку? Вот видоизменил распределитель. Пока не видны изменения в скорости: allocator Сообщение отредактировал AD - 2.7.2009, 10:50 |
|
|
|
|
AD |
2.7.2009, 10:51
Сообщение
#4
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Так.... совсем интересно. При загрузке большого количества логов программа терпит молный крах.
Пока попробую тогда реализовать вариант с массивами, описанный в code 2! |
|
|
|
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
SABROG Цитата(Tonal @ 30.6.2009, 8:15) и сделать... 30.6.2009, 8:53
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
Влад Видел: 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![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 15.12.2025, 10:58 |