簡體   English   中英

如何以編程方式對手機的 CPU 施加壓力?

[英]How can i stress my phone's CPU programatically?

所以我將我的手機超頻到 1.664ghz,我知道有一些應用程序可以測試你手機的 CPU 性能和壓力,但我想以某種方式制作我自己的應用程序。 真正讓 CPU 工作的最佳方法是什么? 我在想只是讓 for 循環做 100 萬次迭代做一些耗時的數學運算……但這不起作用,因為我的手機在幾毫秒內完成了我認為……我嘗試了數萬億次迭代……應用程序凍結,但我的任務管理器甚至沒有顯示應用程序正在使用的 CPU。 通常壓力測試應用程序顯示為紅色並說 cpu:85% ram: 10mb ...那么我如何才能真正讓我的處理器認真思考?

要編譯正則表達式字符串:

Pattern p1 = Pattern.compile("a*b"); // a simple regex
// slightly more complex regex: an attempt at validating email addresses
Pattern p2 = Pattern.compile("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b");

您需要在后台線程中啟動這些:

class RegexThread extends Thread {
   RegexThread() {
      // Create a new, second thread
      super("Regex Thread");
      start(); // Start the thread
   } 

   // This is the entry point for the second thread.
   public void run() {
      while(true) {
        Pattern p = Pattern.compile("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b");
      }
   }
}

class CPUStresser {
   public static void main(String args[]) {
      static int NUM_THREADS = 10, RUNNING_TIME = 120; // run 10 threads for 120s
      for(int i = 0; i < NUM_THREADS; ++i) {
         new RegexThread(); // create a new thread
      }
      Thread.sleep(1000 * RUNNING_TIME);
   }
}

(以上代碼從這里挪用)

看看情況如何。

我會建議一個稍微不同的測試,它不是一個簡單的數學算法和函數。 有很多看起來很奇怪的測試,其結果總是包含所有評論。 您啟動該應用程序,它會運行一段時間,然后以標准分數的形式為您提供結果。 點數越多(或越少),就被認為設備越好。 但比較結果在現實生活中的意義並不總是很清楚。 而且不是全部。 關於數學,首先想到的是大量計算小數位和計算數字“pi”的任務

行。 沒問題,我們會做到的:

這里有一個測試數字——“數字圓周率”——你的手機計算圓周率的一千萬位需要多長時間(3.14)(如果有人在一百年前說這句話,確切地說是立即去精神病院)

當你覺得手機很慢時。 你轉/扭界面。 但如何衡量它 - 目前尚不清楚。 憤怒的小鳥在不同的時間在不同的設備上運行 - 也許測試“憤怒的小鳥”

我們進一步思考 - 多做幾次測試,“厚書”和“大頁面”。

計算算法:

  1. 測試“圓周率”

以速度派為例。 使用慢算法“Abraham Sharp Series”計算千萬分。重復測量數次,取平均值。

  1. 測試“憤怒的小鳥”

拿第一個憤怒的小鳥(不是必需的,但這些版本不是最優化的)

測量從發射到第一聲音樂的時間。 出口。 立刻一遍遍地跑。 重復幾次並取平均值。

  1. 測試“大頁面”

測量大量網站頁面的加載時間。 你可以用你最喜歡的瀏覽器來做:)

您可以使用 此鏈接(對不起西里爾文)

本頁面使用“電腦瀏覽器”和圖片進行維護。 結果總共有 6.5 Mb 和 99 個文件(我仍然在這個頁面上保存了一個小聲音文件的版本)

所有 99 個文件都上傳到手機。 關閉 Wi-Fi 和移動互聯網(這很重要!)

使用瀏覽器打開頁面。 單擊“返回”按鈕。 現在單擊“前進”並測量頁面完全加載的時間。 如此幾次。 后退,后退。 像往常一樣,我們取平均值。

所有結果都以秒為單位給出。

在測試所有支持 microSD 卡的設備時,都是同一張卡-Transcend 16 Gb, class 10。以及上面的所有數據。

嗯,一些設備測試的實際結果TEST RESULT

https://play.google.com/store/apps/details?id=xcom.saplin.xOPS - 應用程序在多線程(2x 內核數)上處理數字(整數和浮點數)並構建性能和 CPU 溫度圖。

截屏

https://github.com/maxim-saplin/xOPS-Console/blob/master/Saplin.xOPS/Compute.cs - 這是應用程序的核心

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM