我用C ++编写了一个使用OpenGL和Cinder的应用程序。当我从Finder启动应用程序文件时,它在60FPS下运行良好且流畅。然而,当我使用launchctl load
性能很糟糕的时候启动它时,用户界面很慢,一般来说它的运行速度大约是所需FPS的一半。
我想用它launchctl
来保持应用程序在它崩溃或需要重新启动以进行内容更新时保持活动状态。我已经阅读了本教程:http://www.launchd.info/并找到了一些可能有用的配置设置,即Data,MemoryLock,NumberOfProcesses,ResidentSetSize和Stack,但我不确定要设置这些值的值at,或者如果它们甚至是有用的。
一个有趣的注意事项是,我注意到在Activity Monitor中,使用时CPU使用率要低得多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
并提供app文件的路径,而不是指向可执行文件。我还没弄清楚直接启动可执行文件之间有什么区别,但它似乎可以解决问题。
这是一个例子:
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-W</string>
<string>/Applications/Safari.app</string>
</array>