![]() |
|
|
![]()
|
|
| ary |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.4.2008 Репутация: нет Всего: нет |
MFC аппликация(SDI) динамически отображает сигналы,получаемые с порта ,в виде разноцветного графика.
При отрисовке я запоминаю координаты каждой вершины графика и ее цвет в объект класса CMap. По завершении измерения каждый график записывается из памяти в отдельный файл(используя сериализацию,встроенную в CMap). ПРОБЛЕМА:Когда клиент загружает файл графика с диска ,то перед его отрисовкой всегда идет очень длинная пауза. Как видно,медленное считывание из CMap ( lineMap.Lookup(..)) тормозит процесс. Я хочу попробовать вместо MFC-шного CMap использовать STL::map или другой контейнер STL. ВОПРОС К ЗНАТОКАМ:какой из контейнерных классов STL дает самое быстрое считывание из памяти в данной ситуации? Это сообщение отредактировал(а) ary - 15.4.2008, 20:11 |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Задержка не в CMap 100%
У тебя сколько объектов? -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| ary |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.4.2008 Репутация: нет Всего: нет |
|
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
кста, в релизе будет на порядок шустрее.
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 4 Всего: 56 |
неправильная постановка задачи. Читают все быстро, вопрос в другом как осуществляется доступ(произвольно, последовательно) есть ли требования в сортировке etc. Формулируй вопрос правильно. |
|||
|
||||
| ary |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.4.2008 Репутация: нет Всего: нет |
при сериализации об'ект lineMap класса CMap заполняется данными из загруженного файла.
А я его в OnPaint() отрисовываю;какой доступ у CMap функции Lookup-кажется произвольный ..Сортировка не нужна.
Это сообщение отредактировал(а) ary - 15.4.2008, 20:51 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 4 Всего: 56 |
если CMap это ассоциативный массив, то у тебя две альтернативы map и multimap. А вообще по идее твой цикл надо убрать из OnPaint.
|
|||
|
||||
| Rapalex |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
ХА, тогда есть спасение. Юзай:
Мне с параметрами по умолчанию помогло. Добавлено через 2 минуты и 59 секунд Думаю разберёшся когда какую вызывать ;) Это сообщение отредактировал(а) Rapalex - 15.4.2008, 21:01 -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
||||
|
|||||
| ary |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.4.2008 Репутация: нет Всего: нет |
Всем спасибо.Проблема была в том,что я забыл сделать иницииализацию хэша.Сейчас работает в несколько раз быстрей.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Интересно, а на кой хрен там вообще хэш... Чем тебя просто список или массив пар не устраивает?
Посмотрев на это:
парктически умерла - хэш-таблица по индексу! В чем смысл-то глубокий? Что ускоряем? Особенно хорош поиск при отрисовке... по индексу! Уж перебирал бы подряд... Кстати, массив ты мог бы грузить одним куском... -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |