为什么CC++写出来的程序效率不如matlab

为什么CC++写出来的程序效率不如matlab,第1张

单从程序的执行效率上讲,C/C++写出来的程序的效率不会不如matlab的,这一点你要意识到,如果从算法的层面上去考虑,你自己用C/C++实现的算法,可能并不是最好的,而Matlab中的算法,可能比你写的要好很多,以致于你能明显察觉出来。

因此,不要从语言本身上找借口。

个人理解:

1)说的是程序是要供人去读,去维护,因此不能为了效率牺牲这方面的性能,导致程序难以理解,维护。那样,正确性,可靠性及健壮性就无从谈起了。

2) 是说要首先着眼于全局的优化,譬如路径是否合理,有没有多余的步骤,有没有多余的循环?

3) 找出瓶颈的意思是说,程序可能由若干步骤、若干部分组成。有可能大多数步骤的效率都是100,个别步骤的是10,你应该先优化效率低的这些地方。

4) 数据结构与实际要描述的对象,你要进行合理的优化,去除不必要的冗余,等等。而算法的优化,你可以看一个在一列排好序的数列中查找一个给定数的算法,一般讲算法的书上。采用不同的算法效率是大不一样的,这比仅仅优化代码的效果要好得多。

5) 效率分为(存储)空间效率和时间效率,这两者一般比较难以统一,往往要在两者之间权衡。不过随着计算机技术的发展,现在一般计算机都可以提供足够的空间,因此空间效率往往已经不成为问题了。你只要专注于提高时间效率就可以了!

6) 紧凑的代码主要是去除了好多必要的格式字符达成的。实际执行的机器码都是经过编译产生的,而编译过程中机器会自动过滤掉格式字符,因此是否去除格式字符对编译产生的机器码没有什么影响。

解释型语言的程序执行效率最低,解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当与把编译型语言中的编译和解释过程混合到了一起同时完成。每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释其独立运行。

在各类程序设计语言中,相比较而言,执行效率最高的是机器语言编写的程序。在各种程序设计语言中,只有二进制代码组成的机器语言才能被计算机直接执行,其他的语言都必须进行编译,翻译成二进制代码才可被执行。

高级语言按程序的执行方式可以分为编译型和解释型两种。

1、编译型语言

编译型语言是指使用专门的编译器,针对特定平台( *** 作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和 *** 作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。编译生成的可执行程序可脱离开发环境,在特定的平台上独立运行。

2、解释型语言

解释型语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。

“清晰第一,效率第二”已成为当今主导的程序设计风格。

程序设计风格主要体现在以下几个方面:

⒈ 源程序文挡化

源程序文挡化应考虑如下几点:

⑴ 符号名的命名

符号名的命名应具有一定的实际含义,以便于对程序功能的理解。

⑵ 程序注释

正确的注释能够帮助读者理解程序。注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出了程序的整体说明,主要描述内容包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。功能性注释的位置一般嵌在源程序体中,主要描述其后的语句或程序做什么。

⑶ 视觉组织

为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序的结构层次清晰。

⒉ 数据说明的方法

在编写程序时,需要注意数据说明的风格,以便使程序中的数据更易于理解和维护。一般应注意如下几点:

⑴ 数据说明的次序规范化

鉴于程序理解、阅读和维护的需要,使数据说明次序固定,可以使数据的属性容易查找,也有利于测试、排错和维护。

⑵ 说明语句中变量安排有序化

当一个说明语句说明多个变量时,变量按照字母顺序排序为好。

⑶ 使用注释来说明复杂数据的结构。

⒊ 语句的结构

程序应该简单易懂,语句构造应该简单明了,不应该为了提高效率而把语句复杂化。一般应注意以下几点:

⑴ 一行内只写一条语句;

⑵ 程序编写应优先考虑清晰性;

⑶ 除非对效率有特殊要求,程序编写要做到清晰第一,效率第二;

⑷ 首先要保证程序正确,然后才要求提高速度;

⑸ 避免使用临时变量而使程序的可读性下降;

⑹ 避免不必要的转移;

⑺ 尽可能使用库函数;

⑻ 避免采用复杂的条件语句;

⑼ 尽量减少使用“否定”条件的条件语句;

⑽ 数据结构要有利于程序的简化;

⑾ 要模块化,使模块功能尽可能单一化;

⑿ 利用信息隐蔽,确保每一个模块的独立性。

⒋ 输入和输出

输入和输出信息是用户直接关心的,输入和输出方式和格式应尽可能方便用户的使用,无论是批处理的输入和输出方式,还是交互式的输入和输出方式,在设计和编程时都应该考虑如下原则:

⑴ 输入格式要简单,以使得输入的步骤和 *** 作尽可能简单;

⑵ 输入数据时,允许使用自由格式,允许缺省值;

⑶ 输入一批数据时,最好使用输入结束标志;

⑷ 在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时数据输入过程中和输入结束时,应在屏幕上给出状态信息。

以上就是关于为什么C/C++写出来的程序效率不如matlab全部的内容,包括:为什么C/C++写出来的程序效率不如matlab、程序优化技术都有哪些,如何提高程序的执行效率、什么语言编写的程序执行效率最低等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9395316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存