我正在编写一个程序,用于将(使用opencv)图像转换为所需的大小,所有这些都由命令行参数给出。我正在使用pthreads来实现多线程,但在我的测试中,单线程程序与多线程程序的性能非常接近。
这实际上是我的第二个代码设计,首先我首先阅读所有图像,然后将它们分配给线程。这太耗费内存了,我改变了。
我是否必须使用fork()或更多与流程相关的东西才能使其以高效的并行方式运行?非常感谢您的建议!
由于代码太长而无法放在这里,我把它放在paste.ubuntu.com上。
主程序将argv参数正确地传递给convert函数。
答案 0 :(得分:0)
感谢所有建议,我想我已经修复了所有问题,现在使用多线程速度快了2倍!在@jeffamaphone询问转换是否是昂贵的部分后,我尝试在线程内移动加载图像,程序瞬间变得更快。我用cvReleaseImage()管理内存,它也很完美。
以下是新代码:http://paste.ubuntu.com/10345572/
非常感谢您的帮助!