2015-02-24 62 views
3

我想知道是否有一些規則或提示如何在編碼時直接防止電池消耗。我知道可能有一些編碼方式可以最大限度地減少處理器的工作量或防止泄漏。然而,除了像位置服務和互聯網連接這樣的常見嫌疑犯之外,是否有人有像導遊或類似「清單」的東西?電池安全編碼

+0

我寫了一些東西。我會把它挖出來併發布。 – 2015-02-24 18:34:42

+1

請澄清你想要的。你說,「編碼時直接防止電池消耗」,似乎表示你想在編譯或調試設備上的代碼時儘量減少漏電。「編碼方式」意味着你想知道如何最小化你編碼/創建的應用程序的電量消耗。你問哪個? – 2015-02-24 18:44:24

+0

似乎很清楚,OP意味着後者。 – 2015-02-24 20:26:24

回答

4

我假設你是指你的應用程序。根據我的經驗,能源的主要消費者,其中#1是最重要的:

  1. CPU使用率
  2. 4G
  3. 無線
  4. 藍牙
  5. 內存

無論4G或WiFi更糟糕取決於您的使用情況,例如無論您是通過蜂窩網絡與惡劣的信號通話還是通過WiFi傳輸視頻。 GPS取決於您是否使用它。如果您正在逐個轉向,它會將您的手機變成一個小型加熱器,並很快耗盡您的電池。

最小化4G,WiFi和藍牙的使用非常簡單。我不確定有可能以任何實際的方式減少內存使用的能量。

CPU使用率是最大的潛在能源豬,因爲它可以持續吸收電子。值得慶幸的是,現代處理器在無所事事時即關閉,即空轉。這稱爲放入空閒/ C狀態。你可以猜到,手機在大部分時間裏都沒有做任何事情。

有幾種方法可以編寫程序以最大限度地減少CPU能耗。實際上,更好的說法是,您可以通過編寫錯誤的程序來挫敗這些節能功能。如果CPU進入休眠狀態以降低功耗,那麼喚醒CPU會增加能耗。另一個要考慮的因素是CPU睡了多久。處理器閒置的時間越長,它可以進入的睡眠狀態越深,睡眠狀態越深,功耗越低。

那麼你需要做什麼來最大限度地減少CPU使用率?你想少用CPU,或者換一種說法,讓你的程序完成任何更快的操作。此外,增加程序閒置的時間長度。

現在讓我們來看看一些具體的事情可以做:

  1. 讓你的程序做任何它做盡可能快。通過找到最快的算法並以最有效的方式實現它。換句話說,就是優化。

  2. 最小化檢查事件。您檢查事件是否發生的次數越多,喚醒處理器的次數就越多,可以進入深度睡眠狀態的可能性就越小。通過確定在保持性能的同時必須檢查某個事件的最大時間間隔來做到這一點。

+0

謝謝你有這個時間。其實我已經知道4G/WiFi或循環。而CPU使用率正是我在「編碼」時的意思。在使用循環或開關/案例(例如)的決定中,我還想考慮我的決定的能耗。此外,在改善內存使用情況下「代碼重新設計」的情況下,我也想關心電池。但你的提示是一個很好的開始。非常感謝 :) – Corona 2015-02-27 11:20:30