Вопросы по теме 'micro-optimization'

Побитовое XOR и сдвиг целых массивов
Предположим, битовая последовательность размера M и другая битовая последовательность размера N, где M >> N. И M, и N могут быть сохранены внутри целочисленных массивов: если N имеет длину 30, тогда потребуется массив только с одним целым числом. ,...
1144 просмотров

Действительно ли при вызове конструктора пустого класса используется какая-либо память?
Предположим, у меня есть класс вроде class Empty{ Empty(int a){ cout << a; } } И затем я вызываю его, используя int main(){ Empty(2); return 0; } Приведет ли это к тому, что в стеке будет выделена какая-либо память...
1964 просмотров

можно ли оптимизировать доступ к массиву?
Возможно, мой профилировщик (Netbeans) ввел меня в заблуждение, но я наблюдаю какое-то странное поведение, надеясь, что кто-то здесь может помочь мне понять это. Я работаю над приложением, которое интенсивно использует довольно большие хеш-таблицы...
4844 просмотров

Почему date() работает в два раза быстрее, если мы устанавливаем часовой пояс из кода?
Вы заметили, что функция date() работает в 2 раза быстрее , чем обычно, если вы устанавливаете фактический часовой пояс внутри своего скрипта перед любым вызовом date() ? Мне очень любопытно об этом. Посмотрите на этот простой фрагмент кода:...
2106 просмотров
schedule 26.02.2022

Как лучше всего в C узнать, делится ли одно число на другое?
Как лучше всего в C узнать, делится ли одно число на другое? Я использую это: if (!(a % x)) { // this will be executed if a is divisible by x } Есть ли способ быстрее? Я знаю, что выполнение, то есть 130% 13, приведет к выполнению 130/13 из...
23975 просмотров

Странное использование `?:` в коде `typeid`
В одном из проектов, над которым я работаю, я вижу этот код struct Base { virtual ~Base() { } }; struct ClassX { bool isHoldingDerivedObj() const { return typeid(1 ? *m_basePtr : *m_basePtr) == typeid(Derived); } Base *m_basePtr; };...
2058 просмотров

Размеры структуры данных boost::thread смехотворны?
Компилятор: clang++ x86-64 на Linux. Прошло некоторое время с тех пор, как я писал какой-либо замысловатый низкоуровневый системный код, и я обычно программировал для системных примитивов (windows и pthreads/posix). Итак, входы и выходы вылетели...
2902 просмотров

Самый быстрый способ удалить все непечатаемые символы из строки Java
Каков самый быстрый способ удалить все непечатаемые символы из String в Java? До сих пор я пробовал и измерял 138-байтовую 131-символьную строку: String's replaceAll() - slowest method 517009 results / sec Precompile a Pattern,...
23219 просмотров

Циклы / стоимость попадания в кэш L1 по сравнению с регистрацией на x86?
Я помню, как предполагал, что попадание в кэш L1 составляет 1 цикл (т.е. идентично времени доступа к регистру) в моем классе архитектуры, но действительно ли это верно для современных процессоров x86? Сколько циклов занимает попадание в кэш L1?...
22568 просмотров

JavaScript: оператор `if/else` быстрее, чем условный оператор?
Рассмотрим следующие два фрагмента кода: var adj=0>grip.y?0<grip.x?0:-180:0<grip.x?-360:-180; а также var adj; if (grip.y < 0) { if (grip.x > 0) adj = 0; else adj = -180; } else { if...
1006 просмотров

Каков самый быстрый способ вычесть два массива в scala
У меня есть два массива (которые я вытащил из матрицы (Array[Array[Int]]), и мне нужно вычесть один из другого. В настоящее время я использую этот метод, однако, когда я его профилирую, это узкое место. def subRows(a: Array[Int], b: Array[Int],...
3822 просмотров
schedule 08.11.2022

Прогнозирование ветвей
Возможный дубликат: Можно ли сказать предсказателю ветвления, насколько вероятно, что он последует за ветвью? Итак, если предсказание ветвлений играет такую ​​большую роль («Предикторы ветвлений играют решающую роль в достижении...
508 просмотров
schedule 22.04.2022

x ›-1 vs x› = 0, есть ли разница в производительности
Я слышал, как один учитель уронил это однажды, и с тех пор меня это беспокоит. Допустим, мы хотим проверить, больше ли целое число x или равно 0. Есть два способа проверить это: if (x > -1){ //do stuff } а также if (x >= 0){...
2437 просмотров

Самый быстрый способ установить одну ячейку памяти в ноль или константу в сборке x86?
Каков самый быстрый способ обнулить одну ячейку памяти в x86? Обычно я это делаю так: C745D800000000 MOV [ebp-28], 0 Как видите, у него довольно короткая кодировка, поскольку в качестве константы используются все 4 байта. С простым...
3432 просмотров
schedule 22.03.2022

Можно ли намекнуть, что конкретная ветвь оператора if, скорее всего, будет выполняться в компиляторе Delphi?
Это частый вопрос для других компиляторов ( C # , VC ++ , GCC .) Я хотел бы узнать то же самое для компилятора Delphi (любой версии; в настоящее время я использую 2010 и XE2 и скоро буду использовать XE4). У меня есть ситуация в...
460 просмотров
schedule 17.11.2022

Производительность сравнения примитивов Java
Я сравниваю int a и int b. Есть ли разница в производительности между if(a>=b){...} и if(a==b || a>b){...} ? Спасибо
96 просмотров
schedule 21.02.2022

Можно ли проверить, равен ли какой-либо из 2 наборов из 3 целых чисел менее чем 9 сравнениям?
int eq3(int a, int b, int c, int d, int e, int f){ return a == d || a == e || a == f || b == d || b == e || b == f || c == d || c == e || c == f; } Эта функция получает 6 целых чисел и возвращает true, если любое из 3...
306 просмотров

Какое логическое значение быстрее? ‹ или ‹=
Я делаю некоторую работу, связанную с обработкой безумного количества данных в браузере. В результате я пытаюсь оптимизировать все вплоть до гаек и болтов. Мне не нужно, чтобы кто-то говорил мне, что я зря трачу время или что преждевременная...
123 просмотров

Действительно ли оптимизация кода в TI-BASIC имеет значение?
Я знаю, что в TI-BASIC принято одержимо оптимизировать и сохранять как можно больше битов (признаю, что это довольно весело). Например, DelVar Z Prompt X If X=0 Then Disp "X is zero" End //28 bytes будет очищен как...
317 просмотров

Очень быстрая универсальная хеш-функция для 128-битных ключей
Мне нужна очень быстрая универсальная хеш-функция для 128-битного ключа. Возвращаемое значение должно быть около 32 бит (хорошо, 16 бит будет достаточно; в большинстве случаев мне действительно нужно только 1-4 бита). Универсальный хэш означает,...
758 просмотров
schedule 15.09.2022