Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
BRE |
30.6.2009, 9:28
Сообщение
#21
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(AD @ 30.6.2009, 10:03) Link Есть ини-файл, в котором определено, какие-именно параметры следует выбирать из лог-файлов (бинарные файлы определенного формата, записанные авиа-приборами)! Данные этого ини-файла (описание параметров) считываются в вектор QVector<ParamDescr*>, ParamDescr - абстрактный класс, описывающий вид параметров (в общем виде - название параметра, адрес (в восьмеричной системе счисления), тип параметра). При чтении лог-файлов значения нужных параметров (сравниваются получаемые адреса) записываются по нужному индексу в вектор значений параметров (как раз в params)! Что именно делать с QList, как и что складывать я не совсем понял. Можешь пояснить, пожалуйста? Если что-то в коде запишешь, буду благодарен. Так может удобней будет использовать QMap. INI-файл читается в QMap<адрес, ParamDescr*>, а дальше при чтении логов из мапа находиться необходимый параметр и устанавливаются его значение? |
|
|
|
|
AD |
30.6.2009, 9:31
Сообщение
#22
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(BRE @ 30.6.2009, 10:28) Link Так может удобней будет использовать QMap. INI-файл читается в QMap<адрес, ParamDescr*>, а дальше при чтении логов из мапа находиться необходимый параметр и устанавливаются его значение? Нельзя, уже реализовано. Перетряхивать всю программу - нерентабельно. Задача - ускорить при загрузке. Далее - будет ускорить при отрисовке- но это уже другой вопрос. |
|
|
|
|
Tonal |
30.6.2009, 10:28
Сообщение
#23
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
Цитата(AD @ 30.6.2009, 12:23) Link Цитата(Tonal) В stl у std::vector есть параметр шаблона, который позволяет указать свой менеджер памяти для этого вектора - это именно то, что тебе нужно. Раньше не писал собственных аллокаторов памяти. Поможешь если что? С чего написание аллокатора памяти начать писать? Заранее спасибо! Ничего писать не нужно. Смотри Link, в самом конеце страницы. |
|
|
|
|
AD |
30.6.2009, 10:41
Сообщение
#24
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(Tonal @ 30.6.2009, 11:28) Link Ничего писать не нужно. Смотри Link, в самом конце страницы. А мне какой allocator использовать? Буста в проекте нет! Ну как я понял, хватит какого-то стандартного. Какой необходим? Прости, если глупый вопрос, возможно, чего-то не понимаю! Сообщение отредактировал AD - 30.6.2009, 10:43 |
|
|
|
|
Tonal |
30.6.2009, 10:54
Сообщение
#25
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
Можешь написать свой, проще зацепить из буста.
Где-то я встречал библиотечку шаблонов для лёгкого написания аллокаторов stl - думал в бусте, сейчас не вспомню... |
|
|
|
|
AD |
30.6.2009, 11:11
Сообщение
#26
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(Tonal @ 30.6.2009, 11:54) Link Можешь написать свой, проще зацепить из буста. Где-то я встречал библиотечку шаблонов для лёгкого написания аллокаторов stl - думал в бусте, сейчас не вспомню... Думаю, тогда может попробовать написать свой! |
|
|
|
|
AD |
30.6.2009, 12:09
Сообщение
#27
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
да, кстати, а мне нужно наследоваться от стандартного аллокатора? Или полностью "свои велосипеды" писать?
|
|
|
|
|
AD |
30.6.2009, 14:09
Сообщение
#28
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Странно, как-то не очень помогло. Или я что-то забыл?
allocator Вот как использую В чем еще могут быть проблемы? Что-то еще следует дописать? |
|
|
|
|
Влад |
30.6.2009, 14:49
Сообщение
#29
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8
|
Хм, есть опасение, что если причиной разработки аллокатора стали проблемы с быстродействием программы (т.е. это попытка улучшить быстродействие), то вряд ли чего получится. Хотя, конечно, "нет процессора, кроме процессора, и Профайлер - пророк его"
Причина мне представляется в том, что в многопоточных версиях CRT (по крайней мере, под Win) глобальные операторы ::new и ::delete защищены критической секцией - и операции выделения памяти по ::new и удаления по ::delete ну очень! "дорогие" по времени. |
|
|
|
|
BRE |
30.6.2009, 14:56
Сообщение
#30
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(AD @ 30.6.2009, 15:09) Link В чем еще могут быть проблемы? Что-то еще следует дописать? Попробуй сделать свой аллокатор наследником std::allocator. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 26.12.2025, 12:49 |