在之前做的视频监控系统项目中,我遇到的最大的问题就是解码器执行效率问题,因为视频处理数据量大,而且越是清晰的视频对解码器性能的要求越高,记得当时开始使用的是ffmpeg移植到VC++下的版本,用Debug调试的时候性能非常差,完全不能满足要求。现在想想,当时为什么不用Release试试呢?
之所以有这样的想法源于两个地方,今天看《C++对象模型》的时候作者提到“如果没有把优化开关打开,就很难猜测一个程序的效率表现............’” 还有一个是,昨天在实现对大量格式化数据进行关键字查重的时候,由于不同环境下的几次运行,效率各有千秋(同一段程序)
具体表现如下(处理150M数据)
环境+编译选项 运行时间
VS 下 Debug模式 60s+
VS 下release模式 8.7s
Linux 无优化G++ 10s+
Linux -o2 G++ 8.1s
这也就是引发我回忆的原因,我因为之前的项目经验,导致我觉得VC++是个很废柴的编译器,但这次我需要改变看法了。大家如果在VC++下开发过,必然觉得VC的调试功能实在是过于好了,我目前觉得调试最爽的IDE,debug模式需要编译器完全变量查看,执行中断等等操作,需要设置许多的编译选项,所以编译的程序其实是加入过多杂物的庞然大物。执行起来自然不如意,只是很少人会想到,之间的差距居然如此之大。这个数据虽然我记不清楚准确的值,但我也十分震惊。 虽然我可以认为VC++不再那么废柴,但确定的一点是:G++编译器的表现还是优于VC++的。不管在Windows还是Linux。
总结:如果你没有开启所有优化之前,千万不要轻易对程序性能进行判断。一切需要付诸实践!
分享到:
相关推荐
《效率源大容量硬盘检测修复程序v30》是一款针对硬盘进行健康检查和故障修复的专业软件,具有广泛的应用价值。其独特的设计和功能使得它在IT业界中引起了不同的评价,既有忠实用户支持,也有批评的声音。然而,不论...
标题《PIC单片机程序设计需要注意的一些问题及看法》指出,在编写PIC单片机程序时,需要特别注意一些技术细节和编程习惯,以避免程序出错和提高程序的效率和可读性。下面将详细介绍该文档中提及的几个关键技术点。 ...
社区圈子微信小程序源码是一款专为构建社区交流平台设计的应用程序。它充分利用微信小程序的便捷性,让用户在微信内即可方便地浏览、参与社区活动,分享内容,进行互动。这款小程序具备以下主要功能: 1. **首页多...
它的最新版本,"Mastercam2021程序单全新版本",为用户提供了一系列的增强功能和优化,旨在提高设计效率和加工精度。作为全网最新的版本,它包含了对旧有功能的改进以及全新的特性,使得在复杂零件设计和自动化编程...
计算机程序设计语言发展史和对程序设计语言未来的看法 计算机程序设计语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。计算机语言的发展可以分为机器语言...
### 关于Shell脚本效率优化的一些个人想法 在IT领域,特别是系统管理和自动化运维工作中,Shell脚本是一种不可或缺的工具。然而,作为一种解释型的脚本语言,Shell脚本在效率方面存在一定的局限性。本文将基于给定...
而对于经验丰富的开发者,这个程序集则可以作为参考和测试新想法的资源。 总的来说,“C常用算法程序集”是一份宝贵的教育资源,涵盖了C语言实现的多种经典算法,无论你是新手还是资深开发者,都能从中获益。通过...
标题提到的“CAD二次开发,边界搜索程序,自己想法”意味着这是一个关于自定义开发一个用于搜索CAD图形边界的程序。 首先,我们要理解CAD的边界搜索。在CAD系统中,边界通常指的是对象的轮廓,例如二维图形的封闭...
开发者可以根据模板快速定制自己的小程序界面,减少重复工作,提高开发效率。模板通常包括但不限于以下组件: 1. 登录注册界面:用户可以通过手机号、微信账号等方式进行注册登录,提供便捷的身份验证机制。 2. ...
以下是一些关键的知识点,可以帮助你在这个角色中取得成功。 1. 技术理解:作为程序经理,对技术的深入理解是基础。你需要了解当前主流的编程语言、开发框架、数据库系统以及软件工程的最佳实践。这样,你可以评估...
6. **版本说明.txt**:这是一个文本文件,包含了关于程序版本的详细信息,包括更新内容、修复的bug以及可能的新特性,对用户升级或了解软件改动情况非常有帮助。 7. **news、content**:这两个文件夹很可能分别存储...
5. **用户反馈**:描述中提到“下载后有什么想法可以多联系”,这可能意味着该程序提供了用户反馈机制,允许用户向开发者提供关于更新体验的反馈,以便进行后续优化。 在实际应用中,"appupdate8.0"可能是该自动...
对于经验丰富的开发者,这些小程序也可以作为快速验证想法或测试新功能的原型。 总的来说,MSP430小程序是一个全面的学习资源,涵盖了从基础的输入/输出操作到更复杂的定时器和中断处理。通过深入研究这些示例,...
Web程序设计是现代信息技术中不可或缺的一部分,它涉及创建可以在网络上运行的应用程序。在本PPT中,我们将重点关注***网站开发,这是由清华大学出版社出版的一个重要主题。***是微软公司推出的一个用于构建动态网站...
这类程序通常具有简洁的用户界面和高效的功能,旨在帮助用户快速、方便地记录各种工作相关的事务,如任务清单、会议纪要、想法灵感等。 描述中提到的“简化记录笔记”,意味着该小程序的核心功能是笔记创建与管理。...
在给定的“汇编常用子程序”压缩包中,包含了一系列用于处理二进制数据转换和ASCII码转换的子程序,以及一些辅助文件。 1. **二进制输出为十进制.asm**:这个子程序实现了将二进制数转换成等值的十进制数并输出的...
它允许用户快速生成适用于微信和抖音平台的小程序应用,大大简化了开发流程,提高了开发效率。这款系统的核心优势在于其开源特性,意味着用户可以自由地查看、修改、分享源代码,根据自己的需求进行定制化开发。 ...