首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >OpenCV: C++和C的性能比较

OpenCV: C++和C的性能比较
EN

Stack Overflow用户
提问于 2012-07-07 23:43:16
回答 5查看 14.8K关注 0票数 17

现在,我正在使用OpenCV应用程序接口(C++)开发一些应用程序。此应用程序使用视频进行处理。

在PC上,一切都运行得非常快。今天我决定把这个应用移植到Android上(使用摄像头作为视频输入)。幸运的是,有用于安卓的OpenCV,所以我只需将我的本机代码添加到示例安卓应用程序中。除了性能之外,一切都工作得很好。我对我的应用程序进行了基准测试,发现应用程序以4-5fps的速度工作,这实际上是不可接受的(我的设备有单核1 1ghz处理器)-我希望它以大约10fps的速度工作。

C上完全重写我的应用程序有意义吗?我知道使用像std::vector这样的东西对开发人员来说很舒服,但我不在乎。

看起来OpenCV's C接口和C++接口具有相同的功能/方法。

我用谷歌搜索了这个问题,但什么也没找到。

谢谢你的建议。

EN

回答 5

Stack Overflow用户

发布于 2012-07-07 23:51:03

在做出这样的决定之前,您应该分析您的代码以定位代码中的热点。如果没有这些信息,您为加快速度所做的任何更改都将是猜测。你试过这个Android NDK profiler?吗?

票数 6
EN

Stack Overflow用户

发布于 2012-07-07 23:48:32

shervin imami在他的网站上做了一些性能测试。您可以查看它以获取一些想法。

http://www.shervinemami.info/timingTests.html

希望能有所帮助。

(而且,如果你能在某个地方分享你自己的发现,如果你有任何提高性能的方法,那就太好了。)

票数 4
EN

Stack Overflow用户

发布于 2012-07-07 23:53:51

我想这个问题需要表述为:C比C++快吗?答案是否定的。两者都被编译成本地机器语言,C++被设计成与C一样快,而对于STL (特别是ISO标准),它们也被设计并注意它们与指针一样快+它们提供了灵活性。使用C的唯一原因是你的平台不支持C++,不要把所有的东西都转换成C,因为你可能会得到几乎相同的性能。试着改进你的代码或者使用opencv的其他功能来做你想做的事情。

不相信吗?然后写一个简单的函数,一次用C语言,一次用C++,然后在一个循环中运行一亿次,然后自己测量时间。也许这能帮助你做出正确的决定

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11376368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档