我做了一些前後增量測試,以確定兩個運算符在android上是否存在性能或功耗差異。在android中執行增量運算符
我沒有發現任何差異。
基本論點在這裏有很好的解釋:http://www.roman10.net/pre-increment-and-post-increment/ (pre更快,因爲沒有生成temp-var)。
我對C++瞭解了這一點,本網站展示了c-implementation,但我無法弄清楚,如何在android中完成實現(也許它的不同)。
用於測試的代碼是
int lPlotRangeCtr = 0;
while (lPlotRangeCtr != mPlotRange){
int lTMP = ++lPlotRangeCtr;
}
這是預增塊,一個爲後的工作原理類似,你可以想像。 我使用了tamp var「lTMP」來確保賦值運算符的返回值,並且編譯器不會轉換增量運算符。
所以任何人都可以幫助我,如何找到實現。 當編譯器批准時,編譯器是否仍然可以轉換運算符,即「lTMP」永遠不會被讀取? 這樣的語句在編譯時自動刪除?
thx這個答案。這個測試是我的碩士論文的一部分。其目標是重新獲得這種差異。我現在給基類寫了一個受保護的(現在)不穩定的成員。我得到了很大的改變,thx很多!好像我需要重新配置整個應用:) –