2008-11-05 72 views
1

有一個可以在10.4中正常工作的Cocoa視頻捕獲應用程序。它使用NSThread來啓動視頻捕獲驅動程序。當應用程序剛剛啓動時,視頻捕捉非常慢(1-2 fps)。但是,在調整UI窗口大小(或將窗口從背景變爲前景)之後,視頻捕捉速度將恢復正常。這隻發生在10.5。Cocoa 10.5多線程應用程序運行緩慢

回答

3

不知道具體原因,但你應該用儀器弄清楚是怎麼回事

2

的回答「我的應用程序是緩慢的」始終「運行鯊魚」。有時候,它現在是「Run Instruments」,但在大多數情況下,我發現Shark給了我一個比Instrument更快的答案。

鯊魚當然是在/ Developer/Applications中。如果你沒有安裝CHUD,那就去做,否則你錯過了。

1

我們有一個應用程序使用多線程視頻捕獲和記錄類似於你所描述的。我們使用libdc1394從Firewire相機捕獲,用於顯示的NSOpenGLView以及用於視頻編碼的QuickTime。從相機捕捉是與OpenGL視頻顯示和QuickTime MPEG4編碼分開的線程。

幾個月前,我們將此應用程序遷移到Leopard中,沒有任何不良影響。事實上,Leopard上每秒30幀的視頻CPU負載下降。

你有沒有檢查過,以確保你正確處理所有的NSLocks之類的?我們遇到了性能問題,其中一個線程的鎖定正在停止對另一個線程的操作,因此會降低幀速率。也許你可以看看把鎖放在絕對需要它們的地方,或者通過實現無鎖版本的操作。

相關問題