我的問題是特定於iPhone,iPod和iPad的,因爲我假設架構有很大的不同。我希望在某個地方有一個規範(對於不同的芯片),或者爲每個特定指令測量T的可靠方法。我知道我可以使用任意數量的工具來衡量所用的聚合處理器時間,使用的內存等。我想在較低的層次上進行量化。如何找到操作的時間值來優化新算法設計?
因此,我能夠弄清楚我經歷了算法的主要部分多少次。例如,我在一個樸素的實現中迭代了n * (n-1)
次,在另一個迭代中迭代了n
(最好的情況)和n + n * (n-1)
(最差的情況)。我還可以對指令總數(+ - =%* /和邏輯語句)進行合理計數,我可以比較這些計數,但假設每個操作的權重是相同的。此外,我不知道如何加權邏輯陳述的實際時間值(if,else,for,while)與數學運算符......每次我是「if」還是像「+」一樣工作用它?我很想知道在哪裏可以找到這些信息。因此,爲了清楚起見,我的目標是發現CPU(或GPU或任何U)需要多少處理器時間,以便能夠圍繞處理器時間設計最佳算法。有人能給我一個iOS硬件從何入手的想法嗎?
編輯:This link to ClockServices.c SIMD在開發者平臺上的東西可能是對此感興趣的人的一個好開始。今晚我可能還會再喝幾杯咖啡;
我想評估的大部分只是C.我會很高興。但是,知道通過NSArray迭代的代價是很好的;但這聽起來像它可能是複雜和可變的。我只是不知道我能找到多少希望......我肯定會接受基本的C操作;) – Rab 2011-01-06 09:45:35
是的,我想到了(百萬測試),但這是一個很好的評論。我認爲像你說的那樣運行測試,但我對結果有兩個恐懼。其中之一是我的測試在某種程度上會很幼稚,我會爲編譯器決定做不同事情時所沒有的信息做很多工作。其次,我只有一些設備,有些有不同的芯片。所以我最親愛的希望是,也許有人對特定處理器的C操作的時間價值進行了估計。 – Rab 2011-01-06 09:56:51
從NSArray評論中得到一絲笑意。我希望我的NSArray不會對我或某物產生藍屏效果;) – Rab 2011-01-06 09:58:14