Вопросы с тегом 'micro-optimization'
Микрооптимизация - это процесс тщательной настройки небольших фрагментов кода для устранения ощущаемого недостатка в некоторых аспектах его работы (чрезмерное использование памяти, низкая производительность и т.д.).
23
ответов
Какой вариант лучше использовать для деления целочисленного числа на 2?
Какой из следующих методов является наилучшим вариантом для деления целого на 2 и почему?
Техника 1:
x = x >> 1;
Техника 2:
x = x / 2;
Здесь x - целое число.
задан 21 мая '12 в 10:54
3
ответов
Почему мое приложение тратит 24% своей жизни на нулевую проверку?
У меня есть дерево решений с критическими характеристиками производительности, и я хотел бы сфокусировать этот вопрос на одной строке кода. Ниже приведен код для итератора двоичного дерева с результатами анализа производительности от него.
p...
задан 15 мая '13 в 12:15
3
ответов
Что каждый программист должен знать о памяти?
Мне интересно, сколько ульрих Дреппер Что каждый программист должен знать о памяти с 2007 года по-прежнему действует. Кроме того, я не мог найти более новую версию, чем 1.0 или ошибки.
задан 14 нояб. '11 в 21:30
7
ответов
Самый быстрый способ удалить все непечатаемые символы из строки Java
Каков самый быстрый способ удалить все непечатаемые символы из String в Java?
До сих пор я пробовал и измерял 138-байтовую строку с 131 символом:
String replaceAll() - самый медленный метод
517009 результатов/сек
Предварительно скопируйте ш...
задан 23 авг. '11 в 16:10
1
ответ
Каков наилучший способ установить регистр в ноль в сборке x86: xor, mov или или?
Все следующие инструкции делают то же самое: установите %eax на ноль. Какой путь оптимален (требуется меньше машинных циклов)?
xorl %eax, %eax
mov $0, %eax
andl $0, %eax
задан 12 нояб. '15 в 10:55
7
ответов
Является ли более эффективным выполнение проверки диапазона путем литья в uint вместо проверки на отрицательные значения?
Я наткнулся на этот фрагмент кода в .NET Исходный код:
// Following trick can reduce the range check by one
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
}
По-видимому, это более эффективно (?), чем if (in...
задан 30 марта '15 в 13:10
7
ответов
Можно ли сообщить предсказателю ветки, насколько вероятно, что он должен следовать за веткой?
Просто, чтобы было ясно, я не собираюсь заниматься какой-либо мобильностью здесь, поэтому любые решения, которые привяжут меня к определенному ящику, прекрасны.
В принципе, у меня есть оператор if, который в 99% случаев оценит значение true, и я пыт...
задан 05 дек. '09 в 9:07
9
ответов
Когда, если когда-либо, цикл разворачивания по-прежнему полезен?
Я пытаюсь оптимизировать очень критически важный для производительности код (быстрый алгоритм сортировки, который называется миллионными и миллионными временами в моделировании monte carlo) путем циклического разворота. Здесь внутренний цикл, который...
задан 28 февр. '10 в 1:41
4
ответов
что быстрее: in_array или isset?
Этот вопрос просто для меня, так как мне всегда нравится писать оптимизированный код, который может работать и на дешевых медленных серверах (или на серверах с большим количеством трафика)
Я огляделся, и я не смог найти ответ. Мне было интересно, чт...
задан 21 нояб. '12 в 1:20
7
ответов
Деление с плавающей запятой против умножения с плавающей запятой
Есть ли какое-либо (не микрооптимизация) усиление производительности при кодировании
float f1 = 200f / 2
в сравнении с
float f2 = 200f * 0.5
Один из моих профессоров рассказал мне несколько лет назад, что деления с плавающей запятой были медлен...
задан 08 нояб. '10 в 18:04
4
ответов
Странное использование кода `?:` В `typeid`
В одном из проектов, над которыми я работаю, я вижу этот код
struct Base {
virtual ~Base() { }
};
struct ClassX {
bool isHoldingDerivedObj() const {
return typeid(1 ? *m_basePtr : *m_basePtr) == typeid(Derived);
}
Base *m_basePtr;
};
...
задан 22 июля '11 в 23:43
3
ответов
Стоимость обработчиков исключений в Python
В еще один вопрос, принятый ответ предложил заменить (очень дешевый) оператор if в коде Python блоком try/except для повышения производительности.
Проблемы с кодированием в сторону, и если предположить, что исключение никогда не запускается, то кака...
задан 26 марта '10 в 11:52
4
ответов
Рассчитывает ли Sqrt (x) как x * InvSqrt (x) какой-либо смысл в коде Doom 3 BFG?
Я просмотрел недавно выпущенный исходный код Doom 3 BFG, когда я столкнулся с чем-то, что, похоже, не имеет никакого смысла. Doom 3 завершает математические функции в классе idMath. Некоторые из функций просто соответствуют соответствующим функциям и...
задан 28 нояб. '12 в 15:25
15
ответов
'...!= null' или 'null! =....' лучшая производительность?
Я написал два метода для проверки производительности
public class Test1 {
private String value;
public void notNull(){
if( value != null) {
//do something
}
}
public void nullNot(){
if( null != value) {
//do something
}
}
}
и пр...
задан 08 марта '10 в 3:14
6
ответов
Использует ли xor reg, reg преимущество над mov reg, 0?
Существует два известных способа установки целочисленного регистра на нулевое значение на x86.
Либо
mov reg, 0
или
xor reg, reg
Есть мнение, что второй вариант лучше, поскольку значение 0 не сохраняется в коде и что сохраняет несколько байтов ...
задан 16 июля '09 в 9:06