如何定义程序的要求
是否有任何简单,便宜(不需要在许多硬件配置上测试程序)以及定义硬件需求(如CPU,RAM存储器等)的无痛方法,这些都需要运行我自己的程序? 应该怎么做?
我有用Java编写的相当资源匮乏的程序,我不知道如何定义足以顺利运行这个应用程序的硬件规范。
不,我认为没有任何通用的方法可以确定不涉及某些特定参考硬件测试的最低要求。
您可以通过使用某种虚拟机来找到某些限制 - 修改某些虚拟机的参数比修改硬件更容易。 但是,主机和虚拟机之间的交互可能会影响您的结果,从而产生工件。
一般来说,在不了解用例的情况下定义“可接受性能”标准也很困难。
许多程序如果可用,将使用更多的资源,但也可以少用。
例如,考虑使用基于CPU核心数量的大小为a的线程池的程序。 在具有更多内核的CPU上运行时,可以同时完成更多工作,但同时由于线程创建,同步和结果汇总的开销增加。 效果在CPU数量上是非线性的,并且取决于实际的程序和数据。 同样,减少可用内存的影响范围可能会从某些输入(但可能不适用于其他输入)可能抛出OutOfMemory-Errors到更频繁地运行GC(并且影响取决于GC策略,从明显的冻结到只是多一点的CPU负载)。
所有这一切甚至都没有考虑到程序通常不会孤立存在 - 它们在操作系统上运行,与其他消耗资源的任务同时运行。
链接地址: http://www.djcxy.com/p/92621.html