看板 AndroidDev 關於我們 聯絡資訊
大家好 , 我在使用Camera preview的時候, CPU Loading很低, 大約在0%上下跳動, 但是只要設定setPreviewCallback的時候, CPU Loading就會跳很高, 以我測試的板子來說(CPU 1GHz,單核), 大約在40%~50%左右, 我想請問 為什麼只是加一個callback function, 就會讓CPU Loading變這麼高? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.221.115.4
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)