至于任何性能改进(无论是更好的速度还是更低的内存),您都应该设置一个测试平台。如果你不能用单元测试来做,如果它是一个 web 应用程序,试着写一个 JMeter 测试计划。
运行测试,始终使用相同的参数(相同的 JVM,以相同的最大堆开始,测试中相同的线程数等......)。
在未优化的应用程序上运行它,并使用一些工具导出一些基准数据(jdk中有很多,jvisualvm很容易但需要人工交互,jmap可以自动化)。
假设它使用 500Mb 的 ram 和 10 分钟来完成未优化版本的测试计划。
运行这些测试,每个开发人员都可以在检查源代码版本之前测试他所做的修改是否使情况变得更好,没有改变任何东西,甚至使情况变得更糟。
由于您签入代码,因此您知道谁签入了哪些修改,并且您可以(使用 git、svn 或任何其他现代源代码版本控制系统)签出特定版本。
针对各种版本运行测试,您可以查看您是否在降低 ram 消耗、时间或任何指标的任务中取得进展......以及作为副作用的还有谁为它做出了哪些贡献。
您甚至可以使用持续集成工具(如 Hudson、Jenkins 等)使其自动化。指示它检查、编译、部署、运行测试、收集数据、发送邮件,说明谁提交了什么以及如何更改数字,但拥有超级-计算机告诉谁是好人....不是最好的团队士气。