我不知道是否有直截了当的答案。我有不同CPU类型的规格。例如,两个实例,A和B. 我想在A和B中运行一些简单的java控制台应用程序。根据它们的规范,在知道A上的运行时后,我可以假设B的运行时吗?
第二个问题是关于核心数字。那么,在知道具有j核的同一台机器上的结果之后,我可以假设具有i核的机器的运行时间吗?
这有什么近似值吗?我正在谈论的实例是Amazon EMR实例。
谢谢。
答案 0 :(得分:3)
根据他们的规格,在知道A?
上的运行时后,我可以[估计] B的运行时间
答案是否定的。或者至少,没有任何准确性或信心。应用程序的性能通常取决于算法的内存访问模式,内存缓存和虚拟内存硬件之间的复杂交互。如果将应用程序视为黑盒子,则无法预测这些内容,即使您了解它正在做什么,也很难进行建模。 GC也可能具有相同类型的不可预测行为。
在知道具有j核的同一台机器上的结果后,我可以[估计]具有i核的机器的运行时间吗?
答案是否定。增加内核数量时的应用程序性能在很大程度上取决于您设计和实现应用程序的方式。在最好的情况下,您可以线性加速......达到平台内存系统的极限。在最糟糕的情况下,你可能根本没有加速。
唯一可行的解决方案是进行猜测......然后尝试各种替代平台,看看您的应用程序如何在其上执行。
答案 1 :(得分:0)
我不知道是否有直截了当的答案。我有不同CPU类型的规格。例如,两个实例,A和B.我想在A和B中运行一些简单的java控制台应用程序。根据它们的规范,在知道A上的运行时后,我可以假设B的运行时吗?
你可以通过使用像PassMark这样的基准来观察相对表现来猜测它。但是,您可以看到应该更快的系统实际上更慢的情况。这只是一个非常粗略的估计。
第二个问题是关于核心数字。那么,在知道具有j核的同一台机器上的结果之后,我可以假设具有i核的机器的运行时间吗?
如果说你的内核数量增加了一倍,你的性能会增加一倍,这是不可能的。
这有什么近似值吗?我正在谈论的实例是Amazon EMR实例。
如果您谈论的是虚拟机而不是真机,那么估算起来就更难了。您可能会发现具有相同规范的两台虚拟机不会执行相同的操作。例如由于您的应用程序可能在不同的时间在不同的计算机上运行,您可能会发现它的性能会有所不同,即使计算机的规格也相同。