鉴于我在部署时不知道我的代码将运行什么类型的系统,我如何编写一个使用系统潜力作为衡量标准的性能基准测试. 我的意思是,如果一个系统能够每秒运行1000次代码,我希望测试能够确
我的意思是,如果一个系统能够每秒运行1000次代码,我希望测试能够确保尽可能接近1000.如果它只能做500,那就是我想比较它的速度.
如果它有助于使答案更具体,我正在使用JUnit4.
谢谢.
测试意味着您有通过/未通过阈值.对于性能测试,这意味着太慢,你失败,足够快,你通过.如果你失败了,你就开始做返工了.如果你不能失败,那么你就是基准测试,而不是实际的测试.
当你谈到“系统能够运行”时,你必须定义“有能力”.您可以使用任何大量的硬件性能基准测试.油石,Dhrystone等很受欢迎.或者,您可能拥有数据库密集型应用程序,那么您可能需要查看TPC基准测试.或者,您可能拥有网络密集型应用程序并希望使用netperf.或者是GUI密集型应用程序,并希望使用某种图形基准测试.
任何这些都可以为您提供某种“能力”测量.选择一个或多个.他们都很好.同样值得商榷.同样偏向于您的竞争对手而远离您.
运行基准测试后,您可以运行软件并查看系统实际执行的操作.
您可以 – 如果您收集到足够的数据 – 在某些基准数字和您的性能数字之间建立一些相关性.您将看到基于工作负载,硬件配置,操作系统版本,虚拟机,数据库服务器等的各种变化.
如果有足够数据来自足够不同配置的盒子,您最终将能够开发出一种性能模型,该模型说“考虑到这些硬件,软件,调整参数和配置,我希望我的软件能够每秒进行[X]次事务处理.”这是“有能力”的坚实定义.
拥有该模型后,您可以将软件与功能编号进行比较.在你拥有一个非常完整的模型之前,你并不知道哪个系统甚至能够每秒运行1000次代码.