![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
GoldFinch, если *16 убрать (допустим заменив на +16), производительность сильно увеличивается ?
если да, то "полезный" ряд (где не -1) таблицы можно сделать косвенным, и представить как отображение на двухмерный массив чисел, значение которого равно pow (0x10, строка) +столбец. тогда для 4х-значных 16-ричных чисел потребуется 4*16*sizeof(int) дополнительной памяти и одно косвенное обращение к ней.. Добавлено @ 20:50 если ничего не напутал Это сообщение отредактировал(а) mes - 8.2.2011, 00:32 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
GoldFinch, вообще-то так и предполагал, но точно не знал. Жалко.
А у меня ещё столько идей ... (С) какой-то анекдот про Вовочку -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
вот накалякал, развернув цикл: http://liveworkspace.org/code/3884c626a705...594cf3ea895ebe5 осталось сравнить по скорости.. |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
mes, там должно быть 8 цифр, а не 4.
если сделать 8 - то производительность будет такой же как и в моей версии. http://paste.org.ru/?wixlwl |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
да, я вчера чего то упустил из виду, что *16 и так оптимальное.. так что tabled_mul излишний.. так что надежда могла быть лишь на исключение лишний операций, при развороте цикла.. хотя исключение пары сдвигов на общем фоне заметно не будет.. так же как и пользы от замены "+" на "|"... |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Сегодня немного повозился с вашей функцией.
оптимизировать её практически бесполезно, так как на вызов/возврат тратится больше времени. чем собственно на само тело функцию. Если есть возможность ее надо вызывать инлайн. Но тем не менее, вот что получилось:
Результаты по времени на моём компе. исходный вариант - 100% этот вариант ~ 84.8% Это сообщение отредактировал(а) volatile - 9.2.2011, 00:54 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |