→ iincho:多了幾道memory copy的動作,但是這應該是I/O bound 04/25 18:26
I/O ? 是指相機一直在截取資料嗎?
可是如果單純相機截取就吃掉這麼多cpu loading很奇怪
推 hijamoya:gc的問題 04/25 18:28
嗯 Log一直印出gc的畫面 我猜這是主因
→ gpc:會一直丟東西給你阿 04/25 20:56
丟相機截取的資料嗎?
請問有什麼辦法可以讓CPU Loading下降?
因為我修改kernel 將相機的frame rate改成30fps,
cpu 會跑到80~90%,
但是我測試s2,相機也是30fps,他的cpu loading只有60%左右,
我猜雙核心跟時脈也是有關係, 所以有沒有什麼辦法可以解決這個問題?
※ 編輯: givemepass 來自: 61.62.45.126 (04/25 23:00)
自問自答一下, 上網找了很多資料,
我發現Log一值在gc, 因此就根據這個問題找到這個討論
http://code.google.com/p/android/issues/detail?id=2794
原來早在1.6的時候, 早已出現這個問題
而且目前這個問題還是存在(我是用2.3.3)
所以我又找到這篇文章解決目前的問題
http://nhenze.net/?p=349
原因出在Camera在callback的時候,
會將讀到的影像存到一個新宣告的陣列,
丟給callback function,
然後gc再把這個陣列回收,
持續重複這個動作, 就會造成大量cpu loading,
因此我照著上面的網頁去修改android_hardware_camera.cpp
重新燒錄filesystem,
cpu loading大幅下降,
而gc的訊息不再出現, 因此問題解決,
感謝大家的回應。
※ 編輯: givemepass 來自: 61.221.115.4 (04/26 11:24)