|
1
1
最好的办法是测量你的瓶颈在哪里?这类工作需要jprofiler等工具。 |
|
|
2
0
通常,当某人为系统性能改进付费时,他几乎完全知道他/她不满意什么。所以首先要列出问题所在。系统“慢”并不是问题,因为“慢”总是与“快”相关(例如系统无法跟上传入的流量)。 一旦你有了一个列表,大致确定组件是“慢”的。 然后使用日志记录(确保每个消息的前缀都是毫秒粒度时间戳,如果需要,请重新配置记录器)。 检查“慢速”操作记录的内容,以及系统在每个组件中花费的时间。 一旦粗略地识别出慢组件,就增加这个特定组件的日志记录冗长性,并尝试找出它有什么问题(慢数据库、差代码等)。 如果您只需要使系统更快,您可以通过在最大负载下运行的进程上重复运行“jstack”(有些人称此方法为“Monte Carlo分析”),找到要优化的第一个地方。通过比较随后的堆栈转储,您可以发现应用程序在统计上花费的大部分时间在哪里,并改进相应的块。 将jconsole连接到正在运行的项目并跟踪内存消耗,同时在日志文件中查找谁分配的内存最多,这也很有用。 |