![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| UnicornMirage |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 15.11.2005 Репутация: 1 Всего: 1 |
Здравствуйте.
что на ваш взгляд будет работать быстрее (получение значения 0 или 1)? 1) реализация в виде битового вектора int vector; извлечение флага №5 будет такая (1 << 5) & vector 2) реализация в виде массива byte[32] vector извлечение флага № 5 будет такая: vector[5] |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
теоритически, доступ к i элементу массива должен работать быстрее, чем выполнение 2 математических операций (<< и &). Но память в первом случае значительно экономнее используется.
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
а если два последовательных доступа к двум рядом стоящим элементам?
в случае хранения их в одном слове, оно, скорее всего, окажется в регистре после взятия первого элемента, и взятие второго пройдёт значительно быстрее... это я всё к тому, что ответ сильно зависит от контекста... а потому можно всё это засунуть в функции типа get,set, а потом (когда алгоритм будет реализован) попробовать заменить их на другой вариант и посмотреть изменение времени работы... тут есть даже зависимость от размеров массивов - если они большие, то для "упакованных" массивов больше вероятность оказаться в кеше процессора целиком, что тоже, по идее, должно повысить скорость... но всё это надо измерять... -------------------- qqq |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Битовая маска быстрее.
Сдвиг и XOR очень быстрые операции, а извлечение элемента из памяти, да еще использую индексную адресацию, и плюс возможная проверка на границы массива, будет однозначно дольше. Можешь задать этот вопрос в разделе по АСМ-у, посмотришь что там ответят. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |