Результаты поиска по запросу "compiler-optimization"

4 ответа

gcc комплексное постоянное складывание

Кажется, что у gcc есть некоторое ограничение на сложное постоянное сворачивание. Вот пример: static inline unsigned int DJBHash(const char *str) { int i; unsigned int hash = 5381; for(i = 0; i < strlen(str); i++) { hash = ((hash << 5) + hash) + ...

3 ответа

Ошибка компиляции RVO при сбое

Здесь много дискуссий о том, когда можно сделать RVO, но не о том, когда это на самом деле делается. Как указано время от времени, RVO не может быть гарантировано в соответствии со Стандартом, ноЕсть ли способ гарантировать, что либо оптимизация ...

1 ответ

Передача по значению и копирование elision оптимизации

Я наткнулся на статью http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/ [http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/] Совет автора: Не копируйте аргументы вашей функции. Вместо этого передайте их по значению ...

ТОП публикаций

3 ответа

Компилирует ли JavaScript функцию каждый раз, когда она вызывается?

Скажем, у меня есть эта функция: function A() { function B() { return 1; } return 1 + B(); }Работает лиB компилируется каждый раз, когда я вызываю функциюA? Я помню, кто-то говорит, что не будет. Но моя память становится ржавой, и я не могу ...

1 ответ

Как получить псевдоним «constexpr and runtime»

Constexpr может быть полезен для оптимизации компиляции. Например... strlen(char*)Может быть скомпилирован с использованием .... constexpr inline size_t strlen_constexpr(char* baseChar) { return ( ( baseChar[0] == 0 ) ?(// if { 0 )// } :(// ...

4 ответа

Оптимизация возвращаемого значения и побочные эффекты

Оптимизация возвращаемого значения (RVO) - это метод оптимизации, включающий удаление копии, который исключает временный объект, созданный для хранения возвращаемого значения функции в определенных ситуациях. Я понимаю преимущества RVO в целом, ...

11 ответов

приятно знать, но реализованы ли они еще?

юбопытно, какие свободы имеет компилятор при оптимизации. Давайте ограничим этот вопрос GCC и C / C ++ (любая версия, любой вариант стандарта): Можно ли написать код, которыйведет себя по-разному в зависимости от того, с каким уровнем ...

1 ответ

повышение духа V2 ци ошибка, связанная с уровнем оптимизации

Я разрабатываю свой код в свободное время. Желательно в режиме отладки. Недавно, когда я пытался собрать релизную версию, я получил ошибку (время выполнения, вывод:1\n2\n тогда ж, болезнь). Я нашел фрагмент кода (ниже), который содержит ошибку, и ...

4 ответа

Я предполагаю, что вы имеете в виду «девиртуализацию», когда вы написали «встраивание». Я уже догадывался, что оптимизации будут более консервативными; Мне было бы интересно узнать, действительно ли это верно для девиртуализации.

ивая виртуальные функции в C ++ и виртуальные таблицы в C, справляются ли компиляторы в целом (и для достаточно больших проектов) с девиртуализацией? Наивно, кажется, что у виртуальных функций в C ++ есть немного больше семантики, таким образом ...

3 ответа

Я действительно не могу сказать достаточно, насколько хороши эти статьи. Среди прочего, статьи действительно ясно и конкретно объясняют, почему некоторые загадочные оптимизации могут удалить код, который кажется необходимым. Причины и последствия UB не очень хорошо поняты в сообществе C, и эти статьи о лучшем прочтении по теме, которую я могу вспомнить. Еще раз спасибо!

я есть следующий кусок кода, который я написал на C. Это довольно просто, так как это просто правильные сдвигиx для каждого цикла для. int main() { int x = 1; for (int i = 0; i > -2; i++) { x >> 2; } }Теперь происходит странная вещь: когда я ...