Russian Qt Forum
Ноябрь 26, 2024, 01:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Как сделать оптимизацию  (Прочитано 16485 раз)
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #30 : Апрель 12, 2012, 11:32 »

Цитировать
Однако достигнутые "полтора" совсем не означают "общее ускорение" - это всего лишь "ускорение доступа" или "холостой ход". Подключите нагрузку (т.е. не просто читать/писать а делать что-то полезное) - и очень быстро от того полтора останется кот наплакал.
Как раз таки и означает) На холостом ходу, т.е. если ТС будет использовать, при работе с матрицей, конструкции вида 
Код
C++ (Qt)
for(long i = o; i < mtx.rows(); ++i) {
   for (long j = 0; j < mtx.columns(); ++j) {
       someFunction( mtx(i, j) );
   }
}
 
то новый вариант с matrix будет вообще в 3-4 раза быстрей.

Вы же сами изменили изначальный мой вариант теста, введя RAIN, чтоб избавится от "холостого" хода...
Избавились. И всё равно matrix оказывается быстрей.

Но это.. Ещё не всё)
Сейчас CBinMatrix - написан не самым оптимальным образом.. Можно ещё ускорить..

Но пусть этим занимается ТС)
 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #31 : Апрель 12, 2012, 11:53 »

Как раз таки и означает) На холостом ходу, т.е. если ТС будет использовать, при работе с матрицей, конструкции вида 
Код
C++ (Qt)
for(long i = o; i < mtx.rows(); ++i) {
   for (long j = 0; j < mtx.columns(); ++j) {
       someFunction( mtx(i, j) );
   }
}
 
то новый вариант с matrix будет вообще в 3-4 раза быстрей.
Не увлекайтесь - и не запутывайте начинающих Улыбающийся В приведенном фрагменте скорость упрется в  someFunction, и если эта ф-ция "выше травы" то эффект "быстрого доступа" упадет до нуля. А вот если нагрузка манипулирует с битами, то битовое представление ой намного быстрее  Улыбающийся

Ну и давайте закругляться - все ясно, начинаем "ходить по кругу". Умолкаю
Записан
V1KT0P
Гость
« Ответ #32 : Апрель 12, 2012, 12:02 »

Ну и давайте закругляться - все ясно, начинаем "ходить по кругу". Умолкаю
Замеры интереснее было бы делать на реально работающем алгоритме.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #33 : Апрель 12, 2012, 12:03 »

Цитировать
А вот если нагрузка манипулирует с битами, то битовое представление ой намного быстрее
Ну это и так понятно. Тут уже не нужно вытаскивать отдельный бит.
С этим я и не спорю)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
sidsukana
Гость
« Ответ #34 : Апрель 12, 2012, 12:31 »

А использование векторных массивов не подходит?
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.085 секунд. Запросов: 23.