micro-optimization

Я новичок в оптимизации инструкций. Я провел простой анализ простой функции dotp, которая используется для получения точечного произведения двух флоат-массивов. Код C выглядит следующим образом: float dotp( const float x[], const float y[], const short n ) { ...

Есть ли какие-либо недостатки в этом коде, который, по-видимому, является более быстрой (и правильной) версией java.lang.Math.round? public static long round(double d) { if (d > 0) { return (long) (d + 0.5d); } else { return (long) (d - 0.5d); } } Он использует тот факт, что...

В настоящее время я тестирую различные алгоритмы, которые определяют, является ли целое число реальным квадратом или нет. Во время моего исследования я нашел этот вопрос в SOF: Самый быстрый способ определить, является ли квадратный корень целого числа целым числом Я сравнительно новичок в программировании...

Должен ли я агрессивно освобождать память при чтении файла, строка за строкой? Пример: while (<FILE>) { my $line = $_; <process line> undef($line); } "Undefing" переменная $ line является хорошим вариантом для уменьшения потребления памяти?...

Я играл с IACA (статический анализатор кода Intel). Он отлично работает при тестировании с фрагментами сборки, где я могу ввести байты magic marker вручную, например: procedure TSlice.BitSwap(a, b: integer); asm //RCX = self //edx = a //r8d = b mov ebx, 111 // Start IACA marker bytes db $64...

В операторах PHP switch повышает ли производительность размещение более распространенных случаев вблизи вершины? Например, предположим, что следующая функция вызывается 1000 раз: <?php function foo_user ($op) { switch ($op) { case 'after_update': //Some Stuff case 'login': ...

Сколько прироста производительности, если таковой имеется, можно получить от переупорядочивания инструкций x64 (x86-64) на последних высокопроизводительных процессорах Intel. Стоит ли беспокоиться об этом в чрезвычайно критических по времени ситуациях? Меня также интересовала возможность получения прибыли за...

я наткнулся на этот кусок кода в .NET список исходный код: // Following trick can reduce the range check by one if ((uint) index >= (uint)_size) { ThrowHelper.ThrowArgumentOutOfRangeException(); } по-видимому, это более эффективно (?), чем if (index < 0 || index >= _size) мне любопытно, что сто...

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