Вопросы с тегом «optimization»

142
Индексы SQL Server - по возрастанию или по убыванию, какая разница?

Когда вы создаете индекс для столбца или количества столбцов в MS SQL Server (я использую версию 2005), вы можете указать, что индекс для каждого столбца будет либо по возрастанию, либо по убыванию. Мне трудно понять, почему этот выбор вообще существует. Разве поиск не будет таким же быстрым при...

140
Обработка очень больших чисел в Python

Я думал о быстрой оценке покерных рук в Python. Мне пришло в голову, что одним из способов ускорить процесс было бы представить все лица и масти карты как простые числа и умножить их вместе, чтобы представить руки. Для того чтобы: class PokerCard: faces = '23456789TJQKA' suits = 'cdhs' facePrimes =...

139
Почему Magento такой медленный? [закрыто]

В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, потребует дебатов, аргументов, опросов или расширенного обсуждения. Если вы считаете, что этот вопрос можно...

139
Время запуска профилирования Vim

У меня включено много плагинов при использовании Vim - я собирал плагины на протяжении многих лет. Я немного сыт по горло тем, сколько времени требуется Vim, чтобы начать сейчас, поэтому я хотел бы профилировать его запуск и посмотреть, какие из многих плагинов у меня есть ответственность. Есть ли...

138
Измерение времени выполнения функции в C ++

Я хочу узнать, сколько времени требуется в моей программе на C ++ для выполнения определенной функции в Linux . После этого я хочу провести сравнение скорости. Я видел несколько функций времени, но закончил с этим из-за повышения. Chrono: process_user_cpu_clock, captures user-CPU time spent by the...

133
Любая оптимизация для произвольного доступа к очень большому массиву, когда значение в 95% случаев равно 0 или 1?

Есть ли возможная оптимизация для произвольного доступа к очень большому массиву (сейчас я использую uint8_tи спрашиваю, что лучше) uint8_t MyArray[10000000]; когда значение в любой позиции в массиве равно 0 или 1 для 95% всех случаев, 2 в 4% случаев, от 3 до 255 в остальном 1% случаев? Итак, есть...

133
Почему компилятор не может (или не может) оптимизировать предсказуемый цикл сложения в умножение?

Этот вопрос пришел в голову при чтении блестящего ответа Mysticial на вопрос: почему обрабатывать отсортированный массив быстрее, чем несортированный ? Контекст для задействованных типов: const unsigned arraySize = 32768; int data[arraySize]; long long sum = 0; В своем ответе он объясняет, что...

131
Как сделать бесконечный пустой цикл, который не будет оптимизирован?

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

131
Функция объединения для PHP?

Многие языки программирования имеют функцию Coalesce (возвращает первое значение , не NULL, пример ). К сожалению, в 2009 году PHP этого не сделал. Что было бы хорошим способом реализовать его в PHP, пока сам PHP не получит функцию...

131
Почему оптимизирован простой цикл, когда ограничение составляет 959, но не 960?

Рассмотрим этот простой цикл: float f(float x[]) { float p = 1.0; for (int i = 0; i < 959; i++) p += 1; return p; } Если вы компилируете с помощью gcc 7 (снимок) или clang (ствол), -march=core-avx2 -Ofastвы получите что-то очень похожее на. .LCPI0_0: .long 1148190720 # float 960 f: # @f vmovss...

131
В режиме выпуска поведение кода не такое, как ожидалось

Следующий код генерирует разные результаты в режиме отладки и в режиме выпуска (с использованием Visual Studio 2008): int _tmain(int argc, _TCHAR* argv[]) { for( int i = 0; i < 17; i++ ) { int result = i * 16; if( result > 255 ) { result = 255; } printf("i:%2d, result = %3d\n", i, result) ; }...

125
Виртуальные функции и производительность - C ++

В своем дизайне классов я широко использую абстрактные классы и виртуальные функции. Было ощущение, что виртуальные функции влияют на производительность. Это правда? Но я думаю, что эта разница в производительности незаметна и, похоже, делаю преждевременную оптимизацию....

124
Быстро определить, присутствует ли значение в массиве C?

У меня есть встроенное приложение с критичным по времени ISR, которое должно перебирать массив размером 256 (предпочтительно 1024, но 256 - минимум) и проверять, соответствует ли значение содержимому массивов. В этом boolслучае A будет установлено значение true. Микроконтроллер - это NXP LPC4357,...

122
Использование этого указателя вызывает странную деоптимизацию в горячем цикле

Недавно я столкнулся со странной деоптимизацией (точнее, упущенной возможностью оптимизации). Рассмотрим эту функцию для эффективной распаковки массивов 3-битных целых чисел в 8-битные целые числа. На каждой итерации цикла он распаковывает 16 int: void unpack3bit(uint8_t* target, char* source, int...

121
Позиция установленного младшего бита

Я ищу эффективный способ определения позиции младшего значащего бита, который установлен в целое число, например, для 0x0FF0 это будет 4. Тривиальная реализация такова: unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately unsigned pos = 0; while (!(value & 1)) {...