gpt4 book ai didi

java - 如何跟踪可能重叠的应用程序不同组件的不同性能改进?

转载 作者:行者123 更新时间:2023-11-29 05:56:54 24 4
gpt4 key购买 nike

所以这是一个普遍的问题。问题是:

我目前正在与其他 5 个人一起从事一个项目。我们都在一个应用程序 (Java EE) 中分配了不同的性能调优项目。然而,我们都需要报告与我们的原始组件相比,我们真正实现了多少改进。现在,如果我们都在不同时间检查我们的代码,我们如何在给定时间内跟踪我们自己的个人性能改进?

我在想也许可以在我们的代码中放置标志并跟踪我所有的代码更改,但我觉得这太困惑了,因为例如假设改进是利用原始数据类型而不是整数对象,但这种改进可能会影响到其他人的工作。

谢谢。 :)

最佳答案

至于任何性能改进(无论是更快的速度还是更低的内存),您都应该设置一个测试平台。如果你不能用单元测试来做,如果它是一个网络应用程序,试着写一个 JMeter 测试计划。

运行测试,始终使用相同的参数(相同的 JVM,以相同的最大堆开始,测试中的相同线程数等...)。

在未优化的应用程序上运行,并使用一些工具导出一些基准数据(jdk中有很多,jvisualvm很容易但需要人工交互,jmap可以自动化)。

假设它使用 500Mb 的 ram 和 10 分钟来完成未优化版本上的测试计划。

运行这些测试,每个开发人员都可以测试他所做的修改是否使情况变得更好,没有改变任何东西,甚至使情况变得更糟,然后再在源版本控制中检查它。

由于 checkin 代码,您知道谁 checkin 了哪些修改,并且您可以(使用 git、svn 或任何其他现代源版本控制系统) checkout 特定版本。

针对各种版本运行测试,您可以查看您是否在降低 ram 消耗、时间或任何指标的任务中取得进展……以及作为副作用还有谁为它做出了哪些贡献。

您甚至可以使用 Hudson、Jenkins 等持续集成工具使其自动化。指示它检查、编译、部署、运行测试、收集数据、发送邮件说明谁提交了什么以及数字如何更改,但是拥有一台 super 计算机来告诉谁是好人……对团队士气来说并不是最好的。

关于java - 如何跟踪可能重叠的应用程序不同组件的不同性能改进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com