【问题标题】:Project Performance Evaluation and Finding Weak Areas项目绩效评估和发现薄弱环节
【发布时间】:2010-05-04 13:02:31
【问题描述】:

我在 J2EE Web 项目中工作,该项目包含大量 Java、SQL 脚本、JS、AJAX 内容。项目已经运行了 5 年,仍然运行良好。

我已经分配了项目的性能评估工作,因为可能存在一些内存使用问题、数据库获取逻辑延迟和其他类似的薄弱性能领域。我应该从哪里开始?

有什么最佳实践可以让项目变得更好?

【问题讨论】:

    标签: jakarta-ee project performance evaluation


    【解决方案1】:

    最好的办法是衡量你的瓶颈在哪里?这样的工作需要像 jprofiler 之类的东西。

    【讨论】:

      【解决方案2】:

      通常,当有人为系统性能改进付费时,他几乎完全知道他/她对什么不满意。因此,首先编写问题列表。系统“慢”的事实不是问题,因为“慢”总是相对于“快”的东西(例如系统无法跟上传入的流量)。 一旦你有了一个列表,粗略地识别出“慢”的组件。 然后使用日志记录(确保每条消息都以毫秒粒度时间戳为前缀,如果需要,重新配置记录器)。 检查“慢”操作记录了什么,系统在每个组件上花费了多少时间。 粗略识别出慢速组件后,增加该特定组件的日志记录详细程度,并尝试找出它的问题所在(慢速数据库、糟糕的代码等)

      如果你只是想让系统更快,你可以通过在最大负载下运行的进程上反复运行“jstack”来找出最优化的地方(有人称这种方法为“蒙特卡罗分析”)。通过比较后续的堆栈转储,您可以统计出应用程序花费最多时间的位置并改进相应的块。

      将 jconsole 连接到正在运行的项目并在查看日志文件以找出谁分配的内存最多时跟踪内存消耗也很有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        • 2020-08-11
        相关资源
        最近更新 更多