Настройки сборки XCode для производительности - приложения для iPhone

Используйте эти system функция.

system("myfile.sh"); // myfile.sh should be chmod +x
6
задан Jugs 25 September 2009 в 12:54
поделиться

3 ответа

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

  • Убедитесь, что вы не компилируете с -O0. Как заметил bbum, вероятно, вам нужно -Os.
  • Если вы выполняете много вычислений с плавающей запятой, убедитесь, что "Compile for Thumb" (-mthumb) не установлен при сборке для ARMv6. Набор инструкций для большого пальца в ARMv6 не имеет инструкций с плавающей запятой, поэтому вы нажимаете прокладку для каждой используемой операции с плавающей запятой. Часто это компенсируется экономией размера кода, но если у вас много операций с плавающей запятой, это может снизить производительность. Обратите внимание, что вы можете построить часть своего проекта для большого пальца и расстаться с выключенным. Также обратите внимание, что набор инструкций thumb2 на ARMv7 поддерживает операции с плавающей запятой.
2
ответ дан 9 December 2019 в 20:46
поделиться

Если не считать измерения и оптимизации, уровень оптимизации компилятора просто о единственном, что повлияет на производительность вашего приложения. Как правило, вам нужен уровень оптимизации -Os ; то есть оптимизированный код, но также оптимизированный по размеру. Поскольку память iPhone ограничена, полезно уменьшить размер кода.

Кроме того, вам нужно будет измерить производительность вашего приложения и отреагировать соответствующим образом. В инструментах есть много инструментов, которые помогут вам в этой задаче. Инструменты на самом деле чертовски хороши, как только вы в них разберетесь.

Учитывая, что вы еще ничего не измерили (что хорошо - заставьте это работать, исправьте, сделать это быстро), могут быть низко висящие фрукты. Вы слишком часто что-то перерисовываете? Слишком быстро срабатывает какое-то автоматическое событие по времени? и т.д ... Только не попадитесь в ловушку преждевременной оптимизации; необходимость измерения и реакции имеет первостепенное значение для успешной оптимизации.

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


(1) Похоже, ваш запрос к базе данных очень медленный. Не зная схему и т. Д., Трудно понять, так ли это на самом деле.

(2) При анализе производительности и времени, затрачиваемом функцией в неизвестной библиотеке, найдите стек и посмотрите, что такое вызов этой библиотеки, чтобы выяснить, почему ваше приложение вызывает снижение производительности.

Вы слишком часто что-то перерисовываете? Слишком быстро срабатывает какое-то автоматическое событие по времени? и т.д ... Только не попадитесь в ловушку преждевременной оптимизации; необходимость измерения и реакции имеет первостепенное значение для успешной оптимизации.

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


(1) Похоже, ваш запрос к базе данных очень медленный. Не зная схему и т. Д., Трудно понять, так ли это на самом деле.

(2) При выполнении анализа производительности и времени, затрачиваемого функцией в неизвестной библиотеке, найдите стек и посмотрите, что такое вызов этой библиотеки, чтобы выяснить, почему ваше приложение вызывает снижение производительности.

Вы слишком часто что-то перерисовываете? Слишком быстро срабатывает какое-то автоматическое событие по времени? и т.д ... Только не попадитесь в ловушку преждевременной оптимизации; необходимость измерения и реакции имеет первостепенное значение для успешной оптимизации.

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


(1) Похоже, ваш запрос к базе данных очень медленный. Не зная схему и т. Д., Трудно понять, так ли это на самом деле.

(2) При выполнении анализа производительности и времени, затрачиваемого функцией в неизвестной библиотеке, найдите стек и посмотрите, что такое вызов этой библиотеки, чтобы выяснить, почему ваше приложение вызывает снижение производительности.

необходимость измерения и реакции имеет первостепенное значение для успешной оптимизации.

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


(1) Похоже, ваш запрос к базе данных очень медленный. Не зная схему и т. Д., Трудно понять, так ли это на самом деле.

(2) При выполнении анализа производительности и времени, затрачиваемого функцией в неизвестной библиотеке, найдите стек и посмотрите, что такое вызов этой библиотеки, чтобы выяснить, почему ваше приложение вызывает снижение производительности.

необходимость измерения и реагирования имеет первостепенное значение для успешной оптимизации.

Обратите внимание также, что вы можете выполнять грубую оптимизацию с помощью Simulator, но вам действительно нужно провести анализ в приложении, запущенном на устройстве, чтобы выполнить окончательную оптимизацию.


(1) Похоже, ваш запрос к базе данных очень медленный. Не зная схему и т. Д., Трудно понять, так ли это на самом деле.

(2) При анализе производительности и времени, затрачиваемом функцией в неизвестной библиотеке, найдите стек и посмотрите, что такое вызов этой библиотеки, чтобы выяснить, почему ваше приложение вызывает снижение производительности.

но вам действительно нужно провести анализ в приложении, запущенном на устройстве, чтобы выполнить окончательную оптимизацию полировки.


(1) Похоже, ваш запрос к базе данных очень медленный. Не зная схему и т. Д., Трудно понять, так ли это на самом деле.

(2) При выполнении анализа производительности и времени, затрачиваемого функцией в неизвестной библиотеке, найдите стек и посмотрите, что такое вызов этой библиотеки, чтобы выяснить, почему ваше приложение вызывает снижение производительности.

но вам действительно нужно провести анализ в приложении, запущенном на устройстве, чтобы провести окончательную оптимизацию полировки.


(1) Похоже, ваш запрос к базе данных очень медленный. Не зная схему и т. Д., Трудно понять, так ли это на самом деле.

(2) При выполнении анализа производительности и времени, затрачиваемого функцией в неизвестной библиотеке, найдите стек и посмотрите, что такое вызов этой библиотеки, чтобы выяснить, почему ваше приложение вызывает снижение производительности.

8
ответ дан 9 December 2019 в 20:46
поделиться

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

Как правило, оптимизация компилятора может улучшить вашу производительность на некоторый однозначный или двузначный процент. Оптимизация кода с использованием более совершенных алгоритмов, кэширования, повторной архитектуры и т. Д. Может иметь трехзначное процентное улучшение.

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

2
ответ дан 9 December 2019 в 20:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: