C#与C++性能对比_第1页
C#与C++性能对比_第2页
C#与C++性能对比_第3页
C#与C++性能对比_第4页
C#与C++性能对比_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#和c性能比较本文将探讨c#的性能问题。当然,作为比较选手是c/c。首先谈谈测试环境。操作系统:win7旗舰版记忆体:2GB硬盘:160GB处理器:Intel Pentium dual CPU t 2330 1.60 GHz本文计划基于以下几个方面进行讨论:1.CPU利用率;内存使用;基本类型的4种计算能力;数学函数运算能力;5.I/O操作能力;阵列计算能力;7.例外处理能力;8.STL vsfcl9.算法HeapSort;10.矩阵乘法;11.嵌套for循环;12.字符串连接。接下来,我会逐一详细地说。(注意,测试程序直接运行编译后的exe。)1.CPU使用情况在程序的整个运行过程中,CPU使用率在50%上下浮动,因此被认为没有上下分隔。2.记忆体使用状况以下是程序运行过程中记录的数据集。C/c: 216kb、832kb、904kb、944kb、1336kb。C #: 1972 kb、1980kb、2000kb、2372kb、3024kb、5156kb。通过此数据集,您可以很容易地知道c#是内存使用中的故障操作。注意:谁想解释c#为什么会出现这种飙升的情况?基本类型的4种计算能力话不多,上面的代码: (注意,所有图表中的时间单位都是毫秒)对于C/c:用于Int对于C#:用于Int比较结果如下图所示。对于C/c:Double的对于C#:Double的比较结果如下图所示。对于C/c:针对Long的对于C#:针对Long的比较结果如下图所示。通过以上数据,我们发现两者对基础数据类型的操作性能几乎完全相同。您还可以看到c# int类型的性能优于c/c。4.数学函数的计算能力对于C/c:常用数学函数对于C#:常用数学函数比较结果如下图所示。通过数据,c#在计算数学函数(如sin、cos、tan、log、sqrt)方面很明显优于C/c。大家后来都注意到了.5.I/O操作能力对于C/c:填写文件,阅读文件对于C#:填写文件,阅读文件比较结果如下图所示。数据表明c#的性能比c/c略好。6.阵列计算能力对于C/c:阵列基本操作对于C#:阵列基本操作比较结果如下图所示。数据发现使c#在阵列的基本操作方面很弱(大家都知道为什么!)。7.例外处理能力这部分代码多了一点,所以没有贴在这里,一个多个舞台后倒塌(写这篇文章的时候,不知道宝儿园舞台后倒塌了n次,也不知道太疯狂了。)。所有源代码的下载地址如下:比较结果如下图所示。数据表明,c/c在这方面比c#好得多,但不要停在这里,重新思考原因。注意:有关例外的说明,请参见Jeffrey Richter中的CLR via C#。8.STL vs FCL好郁闷!不知道为什么,但是提交的网站不断崩溃,我写的文章就一直不翼而飞。如果没有方法,则不会附加代码。直接上结果。此处,我们将通过map和Dictionary比较两种对比度以及Vector和List集。第一个比较结果如下图所示。此处涉及的基本任务是插入和测试关键点是否存在。通过数据找到c#的Dictionary性能远远优于c/c(10倍以上)。第二个比较结果如下图所示。数据发现c#版本的预性能远远优于c/c的预性能。Vector和List的比较结果如下图所示。数据表明,两种性能相似。9.算法HeapSort比较结果如下图所示。通过数据发现,c/c优于c#(代码发现的主犯在阵列操作中)。10.矩阵相乘比较结果如下图所示。通过数据发现,c/c的性能几乎是c#的两倍。到目前为止,我们必须知道C#弱于数组,矩阵操作(为什么?)。大家要在以后的工作学习中学习避开弱点.11.嵌套for循环比较结果如下图所示。由于数据发现,c#比c/c略差。12.连接字符串我很清楚字符串连接是一项耗时的任务。现在,让我们看一下这两个操作。比较结果如下图所示。令人惊讶的是,c#在这方面的性能比c/c高(几乎是c/c的两倍多)。13.总计对比其中总计表示前面所有项目的时间总和,比较结果如下图所示。数据发现可使c#在典型应用程序中的性能达到c/c的70%-80%。这是代管代码,很好吧?总结写了这么多,好像有人要问我,你到底想说什么?作为语言,我们必须知道在什么情况下使用什么。我的观点是,精通一扇门,熟悉或理解另一扇门。怎么说?如果已经在工作,很容易做出决定,继续在工作中使用的语言当然是你应该很熟练。如果和我一样的学生,也做得很好,根据喜好很烦人。但是不要太执着于语言本身。比如说,我,在C#上花了很多时间,这个暑假要去公司实习(大部分用c),所以也要知道c,不是吗?当今社会,一切都很重视速度。尤其是在软件行业。软件不仅要求运行速度,而且开发速度很多遇到的问题。不是哪个神说的,先运行它,再运行得更快。结合上述格式,在一个项目中需要了解c#也需要了解c。以下建议来自其他人的博客源:except for writing time-critical blocks of code,prefer c #。write all your algorithmic code in c(not VC . net),Compile it into a dll and call that using a dll interop through c#。this should balance the performance . this technique is not new or not invented by me or anyone .its similar the oldage c programming vs assembly,Where people on one camp fight assembly programming is faster and the other camp stating c is eassemblyHistory repeats.在真正的软件项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论