2011-05-06 63 views
2

系統調用非常昂貴。如果在循環內運行,可以將應用程序帶到膝蓋上。它是否會影響無控制檯的android?Android - 可以System.out.println()顯着降低性能,就像它在PC上一樣

+1

大部分原因'的System.out.println()'是昂貴的**實際顯示在控制檯輸出**,這是慢的。如果你重定向輸出,突然它會更快。這不是因爲它是一個系統調用,所以系統調用始終都是爲了處理與應用程序外部任何事物交互的所有內容。 – 2011-05-06 00:09:57

+0

如果您決定對此進行測試,請回報。 – Haphazard 2011-05-06 00:18:46

+0

在我的操作系統課程中,我們測量了一個C++程序的執行時間,該程序不寫任何(dev/null)一百萬次,並將其與通過同一個循環迭代但未進行空系統調用的程序進行比較,性能差異很大。 – 2011-05-06 00:20:55

回答

3

使用10000000次迭代循環對您進行快速測試。

空〜200毫秒 的System.out.println()〜5600ms 的System.out.println( 「abcdefghijklmnop」)〜90000ms

取決於你應用,爲您的情況是否接受與否。

順便說一下它不會做什麼,它打印的設備日誌

+0

有趣...舊版本沒有打印任何東西,你必須將它切換到Log.d或其他...好找! – debracey 2011-05-06 04:26:38