Как Вы обычно настраиваете настройки оптимизации своего компилятора?

Если вы используете вложенные фрагменты, это также работает:

getParentFragment().startActivityForResult(intent, RequestCode);

В дополнение к этому вы должны вызвать super.onActivityResult из родительской активности и заполнить метод onActivityResult фрагмента .

6
задан 2 revs, 2 users 100% 15 December 2014 в 07:36
поделиться

11 ответов

Как хинду пользователь я попробовал довольно много оптимизации на полной ОС и были бесконечные обсуждения хинду форумов об этом. Некоторые хорошие флаги для GCC могут быть найдены в Wiki.

Короче говоря, оптимизация для размера работала лучше всего над старым ноутбуком Pentium3 с ограниченным поршнем, но на моей основной настольной машине с Core2Duo,-O2 дал лучшие результаты по всем.

Существует также маленький сценарий, если Вы интересуетесь x86 определенные флаги (на 32 бита), которые наиболее оптимизированы.

Если Вы используете gcc и действительно хотите оптимизировать определенное приложение, попробуйте ACOVEA. Это выполняет ряд сравнительных тестов, затем перекомпилируйте их со всеми возможными комбинациями флагов компиляции. Существует пример с помощью Кодирования методом Хаффмана на сайте (ниже лучше):

A relative graph of fitnesses:

   Acovea Best-of-the-Best: **************************************                (2.55366)
     Acovea Common Options: *******************************************           (2.86788)
                       -O1: **********************************************        (3.0752)
                       -O2: ***********************************************       (3.12343)
                       -O3: ***********************************************       (3.1277)
           -O3 -ffast-math: **************************************************    (3.31539)
                       -Os: *************************************************     (3.30573)

(Обратите внимание, что это нашло - OS быть самым медленным в этой системе Opteron.)

6
ответ дан 8 December 2019 в 17:31
поделиться

Я предпочитаю использовать минимальный размер. Память может быть дешевой, кэш не.

2
ответ дан 8 December 2019 в 17:31
поделиться

Создайте обоих, профиль, выберите который работы лучше над определенными и аппаратными средствами проекта.

Для производительности критический код, который является - иначе, выбирает любого и не беспокоится.

1
ответ дан 8 December 2019 в 17:31
поделиться

Существует много типов оптимизации, максимальная скорость по сравнению с маленьким кодом всего один. В этом случае я выбрал бы максимальную скорость, поскольку исполняемый файл будет просто немного больше. С другой стороны, Вы могли оптимизировать свое приложение для определенного типа процессора. В некоторых случаях это - хорошая идея (если Вы намереваетесь запустить программу только на Вашей станции), но в этом случае вероятно, что программа не будет работать над другой архитектурой (например: Вы компилируете свою программу для работы над машиной Pentium 4-> она не будет, вероятно, работать над Pentium 3).

1
ответ дан 8 December 2019 в 17:31
поделиться

Microsoft поставляет все свое программное обеспечение C/C++, оптимизированное для размера. После сравнительного тестирования они обнаружили, что оно на самом деле дает лучшую скорость (из-за местности кэша).

1
ответ дан 8 December 2019 в 17:31
поделиться

Помимо того, что местность кэша имеет значение (как На сказанном Freund), еще одна вещи, которые делает Microsoft, должен представить их приложение и узнать, какие пути выполнения кода выполняются в течение первых нескольких секунд запуска. После этого они подают эти данные назад к компилятору и просят, чтобы это поместило части, которые выполняются во время запуска близко друг к другу. Это заканчивается в более быстрое время запуска.

Я действительно полагаю, что эта техника доступна публично в VS, но я не на 100% уверен.

2
ответ дан 8 December 2019 в 17:31
поделиться

Для меня это зависит, на какой платформе я использую. Для некоторых встроенных платформ или когда я работал над процессором Cell, у Вас есть ограничения, такие как очень маленький кэш, или минимальное пространство предусмотрело код.

Я использую GCC и склонен оставлять его на "-O2", который является "самым безопасным" уровнем оптимизации и способствует скорости свыше минимального размера.

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

1
ответ дан 8 December 2019 в 17:31
поделиться

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

0
ответ дан 8 December 2019 в 17:31
поделиться

Память является дешевой теперь дни :) Таким образом, это может быть значимо для установки параметров компилятора на максимальную скорость, если Вы не работаете со встроенными системами. Конечно, ответ зависит от конкретной ситуации.

0
ответ дан 8 December 2019 в 17:31
поделиться

Тонкая настройка параметров компилятора как этот является оптимизацией. На принципе, что "преждевременная оптимизация является корнем всего зла", я не беспокоюсь им, пока программа не около ее заключительного состояния поставки, и я обнаружил, что это не достаточно быстро - т.е. почти никогда.

0
ответ дан 8 December 2019 в 17:31
поделиться

Это зависит от применения Вашей программы. При программировании приложения для управления быстрым производственным процессом оптимизируйте для скорости, имел бы смысл. При программировании приложения, которое только должно реагировать на вход пользователя, оптимизация для размера могла иметь смысл. Таким образом, если Вы обеспокоены размером своего исполняемого файла.

0
ответ дан 8 December 2019 в 17:31
поделиться