Java jar在由launchd运行时被限制?
我们有一个功能良好的launchd plist启动我们的jar文件,但存在性能问题。我们希望每25ms发送一个UDP流。如果我们在命令行上手动运行jar,我们的输出将达到预期的25ms。但是,当通过我们的launchd配置运行时,间隔为~100ms,几分钟后跳到~190ns 已经尝试过的事情 •设置ProcessType •在plist中使用Nice键 •通过java选项分配内存Java jar在由launchd运行时被限制?,java,jar,clojure,launchd,Java,Jar,Clojure,Launchd,我们有一个功能良好的launchd plist启动我们的jar文件,但存在性能问题。我们希望每25ms发送一个UDP流。如果我们在命令行上手动运行jar,我们的输出将达到预期的25ms。但是,当通过我们的launchd配置运行时,间隔为~100ms,几分钟后跳到~190ns 已经尝试过的事情 •设置ProcessType •在plist中使用Nice键 •通过java选项分配内存 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE
<?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>Debug</key>
<true/>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.project</string>
<key>ProcessType</key>
<string>Interactive</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/java</string>
<string>-jar</string>
<string>/var/project/project.jar</string>
<string>-server</string>
<string>--interval</string>
<string>25</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/project/logs/project.stderr</string>
<key>StandardOutPath</key>
<string>/var/project/logs/project.stdout</string>
<key>UserName</key>
<string>projectuser</string>
<key>WorkingDirectory</key>
<string>/var/project</string>
</dict>
</plist>
•通过java选项增加堆大小
<?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>Debug</key>
<true/>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.project</string>
<key>ProcessType</key>
<string>Interactive</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/java</string>
<string>-jar</string>
<string>/var/project/project.jar</string>
<string>-server</string>
<string>--interval</string>
<string>25</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/project/logs/project.stderr</string>
<key>StandardOutPath</key>
<string>/var/project/logs/project.stdout</string>
<key>UserName</key>
<string>projectuser</string>
<key>WorkingDirectory</key>
<string>/var/project</string>
</dict>
</plist>
在这两种启动中,运行时jvm的变化是什么?假设您指的是哪个Java版本javac 1.7.0 3 51不是javac,但当您通过这两个版本启动jvm时,您会传递一些配置,或者默认情况下它会自行配置,两个执行中的配置有什么不同我们在两个实例之间都没有设置不同的配置。clojure不使用javac