2008-11-05 75 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之类的?我们遇到了性能问题,其中一个线程的锁定正在停止对另一个线程的操作,因此会降低帧速率。也许你可以看看把锁放在绝对需要它们的地方,或者通过实现无锁版本的操作。

相关问题