Почему приложение запускается так медленно при запуске с launchctl?


3

Я написал приложение на 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>

Где находится файл plist? (LaunchDaemon или LaunchAgent)
JBis

Это в LaunchAgent
JeremyFromEarth
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.