我得到了一个Cocoa视频捕获应用程序,在10.4中运行良好。它使用NSThread启动视频捕获驱动程序。app刚启动时,视频采集速度很慢(1-2fps)。但在调整UI窗口大小(或将窗口从背景移至前台)后,视频捕获速度将恢复正常。这只会在10.5中发生。
发布于 2008-11-05 05:45:04
不确定具体原因,但您应该使用Instruments来弄清楚发生了什么
发布于 2008-11-05 08:50:06
“我的应用很慢”的答案总是“Run Shark”。偶尔,现在是“Run Instruments”,但在大多数情况下,我发现Shark给我的答案比Instruments快。
Shark当然在/Developer/Applications中。如果你没有安装CHUD,那就去做吧,否则你会错过的。
发布于 2008-11-07 17:25:53
我们有一个应用程序,它使用多线程视频捕获和录制,类似于您所描述的。我们使用libdc1394进行Firewire摄像头的捕获,使用NSOpenGLView进行显示,使用QuickTime进行视频编码。来自摄像机的捕获位于与OpenGL视频显示和QuickTime MPEG4编码不同的线程上。
几个月前,我们将此应用程序迁移到Leopard,没有任何不良影响。事实上,Leopard上每秒30帧视频的CPU负载减少了。
你有没有检查以确保你正确地处理了所有的NSLocks和类似的东西?我们遇到了性能问题,一个线程上的锁停止了另一个线程上的操作,从而导致我们的帧率下降。也许您可以考虑只在绝对需要它们的区域周围放置锁,或者通过实现操作的无锁版本。
https://stackoverflow.com/questions/264409
复制相似问题