2
ответа

Языки и VMs: Функции, которые трудно оптимизировать и почему

Я делаю обзор функций при подготовке к исследовательскому проекту. Назовите основную функцию языка или языка, которую трудно оптимизировать, и почему функция или не стоит цены, заплаченной, или...
вопрос задан: 24 March 2010 23:08
2
ответа

C++ 0x модель памяти и спекулятивные загрузки/хранилища

Таким образом, я читал о модели памяти, которая является частью предстоящего C++ 0x стандарт. Однако я немного смущен некоторыми ограничениями для того, что компилятору позволяют сделать, конкретно...
вопрос задан: 5 January 2010 07:48
1
ответ

Как noexcept в C ++ меняет сборку?

Как noexcept в C ++ меняет сборку? Я попробовал немного с маленькими функциями, в Godbolt, но сборка не изменилась. float pi () // noexcept // без разницы {return 3.14; } int main () {...
вопрос задан: 26 June 2019 23:35
1
ответ

Строгое нарушение псевдонимов: почему gcc и clang генерируют разные результаты?

Когда приведение типов нарушает строгое правило псевдонимов в C и C ++, компилятор может оптимизировать таким образом, чтобы можно было распространять неправильное значение константы и разрешать доступ без выравнивания, что ...
вопрос задан: 18 January 2019 08:09
1
ответ

Может приспосабливание компилятор C# оптимизировать далеко локальное (но неиспользованный) переменная, если это - единственная сильная ссылка к объекту?

См. также эти связанные ресурсы: сборщик "мусора".NET выполняет упреждающий анализ кода? (на Переполнении стека) WP7: Когда делает GC, Рассматривают Локальную переменную как Мусор (блог...
вопрос задан: 23 May 2017 12:08
1
ответ

Mathematica: использование упрощения для устранения общих подвыражений и уменьшения силы

Итак, в последнее время я размышлял над тем, как можно было бы сопоставить с образцом и переписывание терминов в системе Mathematica для хорошего использования при оптимизации компилятора ... пытаясь сильно оптимизировать короткие блоки кода, которые ...
вопрос задан: 17 November 2010 18:33
1
ответ

Некоторый пример __ принимает продвижение к более быстрому коду кроме “никакого значения по умолчанию” в переключателе?

Документация для __ принимает, говорит, что "Наиболее популярный способ использования __ принимает, со случаем по умолчанию оператора переключения, как показано в следующем примере".. Есть ли любой другой случай, где __ принимают, может вести...
вопрос задан: 22 June 2010 20:37
1
ответ

C++ определяет для 'лучшей' сборки режима Release в VS

Я в настоящее время использую следующий препроцессор, определяет, и различные настройки оптимизации: WIN32_LEAN_AND_MEAN VC_EXTRALEAN NOMINMAX _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS _SECURE_SCL=0...
вопрос задан: 17 March 2010 05:59
0
ответов

Почему GCC генерирует такие радикально отличающиеся сборки почти для одного и того же кода C?

При написании оптимизированной функции ftol я обнаружил очень странное поведение в GCC 4.6.1. Позвольте мне сначала показать вам код (для ясности я отметил различия ):fast _trunc _one, C :int fast _trunc _one (...
вопрос задан: 19 September 2019 23:07
0
ответов

Почему 'd / = d' не создает исключение деления на ноль, когда d == 0?

Я не совсем понимаю, почему я не получаю деление на ноль исключений: int d = 0; д / = д; Я ожидал получить деление на ноль исключений, но вместо этого d == 1. Почему d / = d не выбрасывает деление на ...
вопрос задан: 29 August 2019 20:14
0
ответов

Почему компилятор Rust не оптимизирует код, предполагая, что две изменяемые ссылки не могут иметь псевдоним?

Насколько я знаю, псевдонимы ссылок / указателей могут препятствовать способности компилятора генерировать оптимизированный код, поскольку они должны гарантировать, что сгенерированный двоичный код ведет себя правильно в случае, когда два ...
вопрос задан: 9 August 2019 11:51
0
ответов

Оптимизация инициализации массива

При компиляции следующего фрагмента кода (clang x86-64 -O3) std :: array < int, 5 > test () {std :: array < int, 5 > значения {{0, 1, 2, 3, 4}}; возвращаемые значения; } Это произвело типичный ...
вопрос задан: 20 June 2019 06:25
0
ответов

Почему мы используем ключевое слово volatile? [дубликат]

Возможный дубликат: C ++: когда вам помогало непостоянное ключевое слово? Я никогда не использовал его, но мне интересно, почему люди его используют? Что именно он делает? Я искал форум, я нашел только C # или ...
вопрос задан: 20 March 2019 03:53
0
ответов

Почему моя реализация, оптимизированная для хвостового вызова, быстрее, чем обычная рекурсивная, если она не поддерживается в c #?

Недавно я познакомился с концепцией оптимизации хвостовых вызовов, и, насколько я могу судить, она не поддерживается по своей сути в компиляторе .NET, но есть обходной путь, называемый «трамплин», который я…
вопрос задан: 5 March 2019 17:47
0
ответов

gcc и clang не хотят лениво инициализировать частично используемую структуру

Рассмотрим следующий код: __attribute __ ((noinline)) int foo1 (int x, int y) {return x; } int bar1 (int * a) {int b = foo1 (a [5], a [10]); вернуть b * b; } Хотя foo1 не встроен, ...
вопрос задан: 3 March 2019 15:30
0
ответов

Быстродействие Beta: сортировка массивов

Я реализовывал алгоритм в Swift Beta и заметил, что производительность была очень плохой. Покопавшись глубже, я понял, что одним из узких мест является нечто такое же простое, как сортировка массивов. ...
вопрос задан: 8 February 2019 12:29
0
ответов

Понимание оптимизации компилятора

Я пытаюсь понять, что делает компилятор с очень простым фрагментом кода: if (group.ImageHeight > 1 & amp; group.ImageWidth > 1) {// Между скобками нет кода} После .. ,
вопрос задан: 18 January 2019 18:30
0
ответов

Разрешено ли компиляторам оптимизировать realloc?

Я столкнулся с ситуацией, когда было бы полезно оптимизировать ненужные вызовы для realloc. Тем не менее, кажется, что ни Clang, ни GCC не делают такие вещи (Godbolt). - Хотя я вижу ...
вопрос задан: 19 November 2018 12:00
0
ответов

Возможен ли ощутимый прирост производительности при использовании __assume в VC++?

Возможно ли ощутимое повышение производительности при использовании __assume в VC++? Если это так, пожалуйста, опубликуйте доказательство с кодом и тестами в своем ответе. Немногочисленная статья MSDN о __assume: http://msdn.microsoft.com/...
вопрос задан: 25 October 2018 15:25
0
ответов

Включает ли компилятор Java свертку констант строк?

Я обнаружил, что Java поддерживает сворачивание констант примитивных типов, но как насчет строк? Пример Если я создам следующий исходный код out.write ("" + "<разметка>" + "<...
вопрос задан: 20 August 2018 17:43
0
ответов

Замена 32-разрядного счетчика циклов на 64-разрядный вводит сумасшедшие отклонения производительности

Я искал самый быстрый способ для подсчета больших массивов данных. Я столкнулся с очень странным эффектом: изменение переменной цикла с unsigned на uint64_t привело к падению производительности на 50% на моем ПК. ...
вопрос задан: 4 August 2018 22:40
0
ответов

Альтернативные схемы реализации vptr?

Этот вопрос касается не самого языка C++(, т.е. не стандарта), а того, как вызвать компилятор для реализации альтернативных схем для виртуальной функции. Общая схема для...
вопрос задан: 28 June 2018 02:43
0
ответов

Почему поэлементное сложение намного быстрее в отдельных циклах, чем в комбинированном цикле?

Предположим, что a1, b1, c1 и d1 указывают на память кучи, и мой числовой код имеет следующий основной цикл. const int n = 100000; для (int j = 0; j
вопрос задан: 31 May 2018 11:58
0
ответов

gcc удаляет встроенный ассемблерный код

Кажется, что gcc 4.6.2 удаляет код, который он считает неиспользуемым, из функций. test.c int main(void) { goto exit; обработчик: __asm__ __volatile__("jmp 0x0"); выход: возврат 0; } Дизассемблирование ...
вопрос задан: 12 February 2018 22:46
0
ответов

Python xlrd: подавление предупреждающих сообщений

Я использую xlrd для обработки файлов Excel. Я запускаю сценарий для папки, содержащей много файлов, и печатаю сообщения, связанные с файлами. Однако для каждого файла, который я запускаю, я получаю следующее...
вопрос задан: 6 December 2017 17:21
0
ответов

В чем разница между параметрами компилятора / Ox и / O2?

Компилятор Microsoft C ++ (cl.exe, входящий в состав Visual Studio) предлагает несколько параметров оптимизации. Разница между большинством из них кажется очевидной, но мне не ясно, что ...
вопрос задан: 13 October 2017 13:27
0
ответов

Почему std :: fill (0) медленнее, чем std :: fill (1)?

Я наблюдал в системе, что std :: fill на большом std :: vector < int > был значительно и постоянно медленнее при установке постоянного значения 0 по сравнению с постоянным значением 1 или динамическим значением: ...
вопрос задан: 10 July 2017 18:22
0
ответов

Почему не всегда использовать оптимизацию компилятора?

Один из вопросов, который я задал некоторое время назад, имел неопределенное поведение, поэтому оптимизация компилятора фактически приводила к сбою программы. Но если в вашем коде нет неопределенного поведения, тогда ...
вопрос задан: 23 May 2017 12:32
0
ответов

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

Это вопрос, который пришел на ум при чтении блестящего ответа Mysticial на вопрос :, почему быстрее обрабатывать отсортированный массив, чем несортированный? Контекст для задействованных типов :...
вопрос задан: 23 May 2017 12:26
0
ответов

Оптимизация кода SSE GCC

Этот пост тесно связан с другим, опубликованным мной несколько дней назад. На этот раз я написал простой код, который просто добавляет пару массивов элементов, умножает результат на значения в другом массиве ...
вопрос задан: 23 May 2017 12:25