2016-11-30 109 views
0

使用jRAPL或類似工具測量單元測試內部的能耗有一些方法嗎?在JUnit單元測試中使用jRAPL

喜歡的東西:

public class FooTest{ 
    @Before 
    public void startUp(){ 
     double beginning = EnergyCheck.statCheck(); 
    } 

    @After 
    public void tearDown(){ 
     double end = EnergyCheck.statCheck(); 
     System.out.println(end - beginning); 
    } 

    @Test 
    public void FooTest(){ 
     //TODO 
    } 
} 

我應該做什麼樣的配置才能夠使用jRAPL這種方式,使用Eclipse IDE?

此致敬禮。

回答

0

查看了代碼後,只要查詢時間足夠長,以下方法可能適用於給定的方法。

@Test 
public void FooTest(){ 
    double beginning = EnergyCheck.statCheck(); 
    //TODO 
    double end = EnergyCheck.statCheck(); 
    System.out.println(end - beginning);enter code here 
} 

當執行的持續時間非常短時,使用RAPL有一些問題。請參閱:http://os.inf.tu-dresden.de/papers_ps/greenmetrics2012-rapl.pdf

你需要的配置是在Linux上運行,使用說明指示您應該使用命令:

sudo modprobe msr 

這使得基於監控RAPL指令的內核模塊。

另一種工具是:https://github.com/TANGO-Project/code-optimiser-plugin目前正在開發中。它可以給出功率值,但尚未提供直接校準其用於計算功耗的模型。