有一個可以在10.4中正常工作的Cocoa視頻捕獲應用程序。它使用NSThread來啓動視頻捕獲驅動程序。當應用程序剛剛啓動時,視頻捕捉非常慢(1-2 fps)。但是,在調整UI窗口大小(或將窗口從背景變爲前景)之後,視頻捕捉速度將恢復正常。這隻發生在10.5。Cocoa 10.5多線程應用程序運行緩慢
1
A
回答
3
不知道具體原因,但你應該用儀器弄清楚是怎麼回事
2
的回答「我的應用程序是緩慢的」始終「運行鯊魚」。有時候,它現在是「Run Instruments」,但在大多數情況下,我發現Shark給了我一個比Instrument更快的答案。
鯊魚當然是在/ Developer/Applications中。如果你沒有安裝CHUD,那就去做,否則你錯過了。
1
我們有一個應用程序使用多線程視頻捕獲和記錄類似於你所描述的。我們使用libdc1394從Firewire相機捕獲,用於顯示的NSOpenGLView以及用於視頻編碼的QuickTime。從相機捕捉是與OpenGL視頻顯示和QuickTime MPEG4編碼分開的線程。
幾個月前,我們將此應用程序遷移到Leopard中,沒有任何不良影響。事實上,Leopard上每秒30幀的視頻CPU負載下降。
你有沒有檢查過,以確保你正確處理所有的NSLocks之類的?我們遇到了性能問題,其中一個線程的鎖定正在停止對另一個線程的操作,因此會降低幀速率。也許你可以看看把鎖放在絕對需要它們的地方,或者通過實現無鎖版本的操作。
相關問題
- 1. 應用程序在uwsgi線程模式下運行緩慢
- 2. C++線程應用程序比非線程運行速度慢
- 3. Asp.net應用程序運行緩慢,但CPU最多爲40%
- 4. 多線程應用程序緩慢停止
- 5. 多線程程序運行速度慢於單線程
- 6. 遠程SQL SERVER與asp網絡應用程序運行緩慢
- 7. 從Cocoa應用程序運行AppleScript
- 8. Android應用程序緩慢
- 9. 緩慢的應用程序
- 10. 使用多線程時程序運行速度較慢
- 11. 同步線程減慢多線程應用程序
- 12. Pygame程序運行緩慢。爲什麼?
- 13. MySQL應用程序在一般使用後運行緩慢
- 14. 運行一個多線程程序同步非常慢Java
- 15. 在Windows 7上運行緩慢的Delphi 6應用程序
- 16. Xcode應用程序運行緩慢,內存很高
- 17. 應用程序最初運行緩慢嗎?
- 18. Rails 3.2.1生產運行緩慢的應用程序
- 19. 應用程序在前幾秒運行緩慢?
- 20. Tomcat java web應用程序運行緩慢
- 21. Android:Android服務強制應用程序運行緩慢
- 22. .Net應用程序在IIS7/Server 2008中運行緩慢64位
- 23. Netbeans(和其他Java應用程序)在Linux上運行緩慢
- 24. Crystal Reports在應用程序中運行緩慢
- 25. 啓動時WPF應用程序運行緩慢
- 26. AsyncTask應用程序仍在緩慢運行
- 27. 這個應用程序爲什麼運行緩慢?
- 28. 運行subprocess.call來運行Cocoa命令行應用程序
- 29. 應用程序線程繼續運行
- 30. Python和線程 - 線程如果運行多個進程慢慢死去