Я написал приложение на C ++, используя OpenGL и окалина , Когда я запускаю файл приложения из Finder, он работает хорошо и плавно при 60FPS. Тем не менее, когда я запускаю его с помощью launchctl load
производительность ужасна, пользовательский интерфейс вялый и в целом он работает примерно на половине желаемого FPS.
Я хотел бы использовать launchctl
чтобы сохранить приложение в случае сбоя или необходимости перезапуска для обновления содержимого. Я прочитал этот урок: http://www.launchd.info/ и нашел некоторые параметры конфигурации, которые могут быть полезны, а именно: Data, MemoryLock, NumberOfProcesses, ResidentSetSize & amp; Стек, но я не уверен, на какие значения их устанавливать или они даже полезны.
Одно интересное замечание заключается в том, что я заметил, что в Activity Monitor использование ЦП намного ниже при использовании launchctl
,
Вот мой текущий файл plist.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>PROCESS_ID</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ThrottleInterval</key>
<integer>30</integer>
<key>Program</key>
<string>PATH_TO_EXECUTABLE</string>
</dict>
</plist>
Обновить: Я нашел способ обойти эту проблему. Вместо того, чтобы указывать на исполняемый файл, мы можем использовать open
и укажите путь к файлу приложения. Я не выяснил, в чем разница между запуском исполняемого файла напрямую, но, похоже, это исправило проблему.
Вот пример:
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-W</string>
<string>/Applications/Safari.app</string>
</array>