我正在尝试诊断一个构建在OSGi之上的Java应用程序的性能问题。该平台是一个运行在嵌入式Linux机器上的ARM5处理器。CPU使用率经常是100%,并且内存消耗很高。
我在公司的嵌入式操作系统方面,Java开发人员在企业应用程序开发方面比嵌入式应用程序开发更熟练。虽然我的背景也包括嵌入式Java,但正是由于这个原因,我一直避免使用OSGi。
我正在寻找容易获得的结果--哪些常见的设计错误可能会导致过多的CPU和内存消耗,我可以快速调查这些错误,以使CPU利用率恢复到更合理的水平。
发布于 2012-05-25 18:30:04
这里有一些常见的设计陷阱,希望这能有所帮助:
- Use `StringBuffer`
- Use own String parsing via `String.indexOf(int)` instead of `StringTokenizer` whenever possible
- First char comparison via `string.charAt(0)` is faster than `String.startsWith(str)`
- Use `String`’s equals method instead of `equalsIgnoreCase` whenever possible
发布于 2012-05-21 18:07:22
您发布的分析显示了许多字符串。因此,您可能会遇到一个旧的Java性能陷阱。
如果您在代码中的某处这样做: myString = myString +“";或类似的在循环中,每次都会创建一个新对象。在这些情况下,使用StringBuilder是有意义的。这只是一个大胆的猜测,但它也打击了我。
发布于 2013-05-20 15:43:45
试试Knopflerfish,他们有一个更专注于嵌入式的开源框架实现。还有一家公司Prosyst,它有一个针对嵌入式的商业OSGi框架。
https://stackoverflow.com/questions/10665066
复制相似问题