2016-11-20 57 views
-1

我需要計算c代碼中算法的能耗。任何想法如何做到這一點,以及是否有預定義的功能?c代碼中算法的能耗

由於提前,

+0

https://www.google.com/search?q=energy+consumption+of+software上的一些匹配項:https://peerj.com/preprints/886/ https://hal.archives-ouvertes。 fr/hal-00912613 /文檔 – alk

+0

(算法不消耗能量:進程做。) – greybeard

回答

0

這是幾乎不可能從C代碼獨自做到這一點。 C編譯器允許翻譯一大塊C代碼的多種方式不能精確計算能耗。你需要知道編譯器如何翻譯哪個體系結構的代碼。

它是簡單得多(對於某種程度的「簡單」),以計數彙編命令和(來自維基列表中列出的技術規格,例如,用於隨機選擇的MCU:http://www.atmel.com/Images/doc32002.pdf)與相應的等待時間將它們相乘。這仍然不準確,例如分區可能需要不同數量的CPU週期,具體取決於輸入,CPU架構和硬件實現,但它非常接近並且相當簡單,雖然有點乏味。

而且還有一些循環的迭代次數完全未知,輸入採用不同的路徑和不同的運行時間等等。編寫加密軟件的人員更多地瞭解它,特別是如何避免它。你可能不喜歡他們的解決方案。

否則:檢查你所期望的輸入(你知道哪條路哪個輸入需要,你呢?),寫一個測試程序,去例如爲:https://www.rohde-schwarz.com/獲得良好的儀表和測量功耗。您還需要一位知道如何做到這一點的工程師,這並不容易!