Вопросы по теме 'micro-optimization'
Побитовое XOR и сдвиг целых массивов
Предположим, битовая последовательность размера M и другая битовая последовательность размера N, где M >> N. И M, и N могут быть сохранены внутри целочисленных массивов: если N имеет длину 30, тогда потребуется массив только с одним целым числом. ,...
1144 просмотров
schedule
23.03.2022
Действительно ли при вызове конструктора пустого класса используется какая-либо память?
Предположим, у меня есть класс вроде
class Empty{
Empty(int a){ cout << a; }
}
И затем я вызываю его, используя
int main(){
Empty(2);
return 0;
}
Приведет ли это к тому, что в стеке будет выделена какая-либо память...
1964 просмотров
schedule
19.12.2022
можно ли оптимизировать доступ к массиву?
Возможно, мой профилировщик (Netbeans) ввел меня в заблуждение, но я наблюдаю какое-то странное поведение, надеясь, что кто-то здесь может помочь мне понять это.
Я работаю над приложением, которое интенсивно использует довольно большие хеш-таблицы...
4844 просмотров
schedule
16.11.2023
Почему 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 просмотров
schedule
04.03.2022
Странное использование `?:` в коде `typeid`
В одном из проектов, над которым я работаю, я вижу этот код
struct Base {
virtual ~Base() { }
};
struct ClassX {
bool isHoldingDerivedObj() const {
return typeid(1 ? *m_basePtr : *m_basePtr) == typeid(Derived);
}
Base *m_basePtr;
};...
2058 просмотров
schedule
02.04.2023
Размеры структуры данных boost::thread смехотворны?
Компилятор: clang++ x86-64 на Linux.
Прошло некоторое время с тех пор, как я писал какой-либо замысловатый низкоуровневый системный код, и я обычно программировал для системных примитивов (windows и pthreads/posix). Итак, входы и выходы вылетели...
2902 просмотров
schedule
25.05.2022
Самый быстрый способ удалить все непечатаемые символы из строки Java
Каков самый быстрый способ удалить все непечатаемые символы из String в Java?
До сих пор я пробовал и измерял 138-байтовую 131-символьную строку:
String's replaceAll() - slowest method
517009 results / sec
Precompile a Pattern,...
23219 просмотров
schedule
28.10.2022
Циклы / стоимость попадания в кэш L1 по сравнению с регистрацией на x86?
Я помню, как предполагал, что попадание в кэш L1 составляет 1 цикл (т.е. идентично времени доступа к регистру) в моем классе архитектуры, но действительно ли это верно для современных процессоров x86?
Сколько циклов занимает попадание в кэш L1?...
22568 просмотров
schedule
18.12.2022
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 просмотров
schedule
07.12.2022
Каков самый быстрый способ вычесть два массива в 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 просмотров
schedule
20.06.2022
Самый быстрый способ установить одну ячейку памяти в ноль или константу в сборке 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 просмотров
schedule
14.03.2023
Какое логическое значение быстрее? ‹ или ‹=
Я делаю некоторую работу, связанную с обработкой безумного количества данных в браузере. В результате я пытаюсь оптимизировать все вплоть до гаек и болтов. Мне не нужно, чтобы кто-то говорил мне, что я зря трачу время или что преждевременная...
123 просмотров
schedule
10.07.2022
Действительно ли оптимизация кода в TI-BASIC имеет значение?
Я знаю, что в TI-BASIC принято одержимо оптимизировать и сохранять как можно больше битов (признаю, что это довольно весело).
Например,
DelVar Z
Prompt X
If X=0
Then
Disp "X is zero"
End //28 bytes
будет очищен как...
317 просмотров
schedule
12.12.2023
Очень быстрая универсальная хеш-функция для 128-битных ключей
Мне нужна очень быстрая универсальная хеш-функция для 128-битного ключа. Возвращаемое значение должно быть около 32 бит (хорошо, 16 бит будет достаточно; в большинстве случаев мне действительно нужно только 1-4 бита).
Универсальный хэш означает,...
758 просмотров
schedule
15.09.2022