Запитання з тегом «optimization»

Оптимізація - акт удосконалення методу чи конструкції. У програмуванні оптимізація зазвичай набуває форми збільшення швидкості алгоритму або зменшення необхідних йому ресурсів. Іншим значенням оптимізації є чисельні алгоритми оптимізації, що використовуються в машинному навчанні.


22
Позиція найменш значущого біта, яка встановлена
Я шукаю ефективний спосіб визначити позицію найменш значущого біта, встановленого в цілому, наприклад, для 0x0FF0 це було б 4. Тривіальна реалізація така: unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately unsigned pos = 0; while (!(value & 1)) { value >>= 1; ++pos; } return pos; } Будь-які …

27
Який найшвидший / найефективніший спосіб знайти найвищий встановлений біт (msb) у цілому цілому в C?
Якщо у мене є деяке ціле n, і я хочу знати положення найбільш значущого біта (тобто, якщо найменший значущий біт знаходиться праворуч, я хочу знати положення самого далекого лівого біта, який дорівнює 1), який найшвидший / найефективніший метод з'ясування? Я знаю, що POSIX підтримує ffs()метод у strings.h для пошуку першого …



3
Чому компілятори C ++ не оптимізують це умовне булеве призначення як безумовне завдання?
Розглянемо наступну функцію: void func(bool& flag) { if(!flag) flag=true; } Мені здається, що якщо прапор має дійсне булеве значення, це було б рівнозначно беззастережному встановленню його true, як-от так: void func(bool& flag) { flag=true; } Але ні gcc, ні clang не оптимізують його таким чином - обидва генерують наступне на …
117 c++  optimization 

30
Практики кодування, які дозволяють компілятору / оптимізатору зробити більш швидку програму
Багато років тому компілятори C не були особливо розумними. Як обхід K&R винайшов ключове слово регістр , щоб натякнути компілятору, що, можливо, було б хорошою ідеєю зберегти цю змінну у внутрішньому реєстрі. Вони також змусили третинного оператора допомогти генерувати кращий код. Ішов час, укладачі дозрівали. Вони стали дуже розумними в …

4
Як перевантажити std :: swap ()
std::swap()використовується багатьма контейнерами std (наприклад, std::listта std::vector) під час сортування та рівномірного призначення. Але реалізація std swap()дуже узагальнена і досить неефективна для користувацьких типів. Таким чином, ефективність може бути досягнута шляхом перевантаження std::swap()за допомогою конкретного типу. Але як це можна реалізувати, щоб його використовували контейнери std?

14
Інструменти для оптимізації JPEG? [зачинено]
Зачинено. Це питання не відповідає вказівкам щодо переповнення стека . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для переповнення стека. Закрито 3 роки тому . Удосконаліть це питання Чи знаєте ви про будь-які інструменти (бажано командного рядка) для автоматичної та без втрат оптимізації …
114 optimization  jpeg 

13
Чи потрібно мені в C ++ намагатися кешувати змінні чи дозволити компілятору робити оптимізацію? (Збудження)
Розглянемо наступний код ( pмає тип unsigned char*і bitmap->widthмає деякий цілий тип, саме той, який невідомий і залежить від того, яку версію зовнішньої бібліотеки ми використовуємо): for (unsigned x = 0; x < static_cast<unsigned>(bitmap->width); ++x) { *p++ = 0xAA; *p++ = 0xBB; *p++ = 0xCC; } Чи варто її оптимізувати …

3
Як вибрати розміри сітки та блоку для ядер CUDA?
Це питання про те, як визначити розміри сітки, блоку та нитки CUDA. Це додаткове запитання до поставленого тут . Перейшовши за цим посиланням, відповідь від talonmies містить фрагмент коду (див. Нижче). Я не розумію коментар "значення, яке зазвичай вибирається за допомогою настройки та апаратних обмежень". Я не знайшов хорошого пояснення …

6
Чому .NET / C # не оптимізується для рекурсії хвостових викликів?
Я знайшов це питання про те, які мови оптимізують хвостову рекурсію. Чому C # не оптимізує рекурсію хвоста, коли це можливо? Для конкретного випадку, чому цей метод не оптимізований у цикл ( Visual Studio 2008 32-розрядний, якщо це має значення) ?: private static void Foo(int i) { if (i == …

3
Чому два бінарні програми з лише коментарями не змінюють точно збіг у gcc?
Я створив дві програми на С Програма 1 int main() { } Програма 2 int main() { //Some Harmless comments } AFAIK при компілюванні компілятор (gcc) повинен ігнорувати коментарі та надлишкові пробіли, а значить, вихід повинен бути подібним. Але коли я перевірив md5суми вихідних бінарних файлів, вони не відповідають. Я …

18
Чи буде струн обчислюватися в кілька разів, якщо його використовувати в умовах циклу?
Я не впевнений, чи може наступний код викликати надмірні обчислення, чи це специфічний для компілятора? for (int i = 0; i < strlen(ss); ++i) { // blabla } Чи strlen()буде обчислюватися кожен раз, коли iзбільшуватиметься?
109 c++  c  gcc  optimization  strlen 

4
Яке найшвидше ціле ділення, що підтримує ділення на нуль, незалежно від результату?
Підсумок: Я шукаю найшвидший спосіб розрахунку (int) x / (int) y не отримуючи винятку для y==0. Натомість я просто хочу довільний результат. Фон: При кодуванні алгоритмів обробки зображень мені часто потрібно ділити на (накопичене) значення альфа. Найпростіший варіант - звичайний код C з цілою арифметикою. Моя проблема полягає в тому, …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.