atitit.常用编程语言的性能比较 c c++ java

atitit.常用编程语言的性能比较 c c++ java

选择一个什么样的程序问题进行这样的测试呢?这是一个很关键的问题,也最容易影响测试的公平性。另外的,对于每种语言,各自的优势都是不同的

#----性能测试标准

首先的,我们的选题中要使用的各种程序语言的最常用的要素。(、数组操作、循环、判断等。)

对IO的操作也是编程语言重要的内容。

其次的,操作时间一定要长,否则,对于解释性的语言来说是极不公平的

4.避免CACHE的影响...最好每执行一时间重启进程

作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected]

转载请注明来源: http://blog.csdn.net/attilax

#---例如

从指定文本文件中搜索指定字符串,计算个数。并且打印出搜索到的个数作为结果输出。 这个算法里面包含了条件判断、循环、数组操作等基本的程序语言因素。 一个多达2G的文本文件,总共有文本1500万行多。这保怔了足够的运行时间(但应该不会太长)

#-----结果

使用PERL5.8解释器,用了8分18秒08完成了1500万行文本的扫描,并得出了正确的结果。

c  平均2分15秒多。

C++程序在测试平台上用了最快4分25秒95 到最慢5分40秒68

汇编 :  基本的和c一样.

JAVA程序做1500万行的文本扫描用了8分21秒18。应该说是几种语言中最慢的,基本上和纯解释的PERL是在同一水准

#----other测试结果

主要的编程语言与吞吐量

语言 吞吐量 特性

C/C++ 100 静态语言、本地代码

Java/C# 1~10 静态语言、VM、字节码

Ruby/Python 0.1~1 动态语言

#-----为什么有些测试证明java跟C C++性能差不多???CPU密集型和io密集型的不同.

一般在配备了JIT(Just In Time)编译器的虚拟机(Virtual Machine,VM)中,Java的运行速度会因JIT 编译的效果变得很快,某些情况甚至会比C 语言更快。

但是这种效果只发生在以CPU 为中心的应用程序中,而在那些与操作系统频繁进行输入输出操作的应用程序中无效。比如,在一个对100MB 的文件进行读取,每次读取1KB 并对行数进行计数的程序中,C 语言要比Java 快上10 倍左右的情况也是常有的。这是因为Java  VM 在系统调用前后,每次都会进行缓存溢出和异常对象的处理。这是无法省去的处理过程,所以使用VM 的处理系统存在一定的局限性。网络游戏的服务器每秒会进行数万次输入输出,这是Java 和C 语言产生速度差异的典型例子。Apache 和MySQL 等服务器软件都用C/C++
编写也是基于同样的原因

其次,动态语言的吞吐量比起Java 更是低了10~100 倍,为什么会这样呢?这是因为每次进行一些处理时,对象调用的方法可能会发生变化,所以每次都必须进行检查确认

#---总结

大部分的操作系统核心几乎都是用纯C写成的,尽管很复杂,但很少有使用面向对象技术的。为什么,不是面向对象技术不好,也不是操作系统核心不够复杂(那什么复杂?),主要的考虑就是效率问题。

c语言的性能是c++的2.5倍,, 是java的4倍..  (通常状态下), 要是io密集型能10倍的区别...

顺带提一下,Google 的Go 语言是一种静态的、本地执行的语言,它具有垃圾回收机制,程序员可以在代码的不同部分中选择类型化的强度,既不牺牲服务器的性能又可以提高开发效率,笔者对此十分期待。让人不禁感叹Google 对服务器开发确实颇为了解

参考

程序语言效率比较_安全防护_中国网管联盟bitsCN.com.htm

atitit.常用编程语言的性能比较 c c++ java

时间: 2024-10-10 09:14:42

atitit.常用编程语言的性能比较 c c++ java的相关文章

atitit.高级编程语言的特性 and 未来趋势与进化.doc

atitit.高级编程语言的特性 and 未来趋势与进化.doc 1 编程语言的发展历程 1 1.1 编程语言的进化,起始发现背后的思想 :任何两个系统之间的复杂性,都可以通过添加一个抽象层要屏蔽 1 1.1.1 C语言, 硬件抽象层 2 1.1.2 高级语言:java,.net  跨平台(os)抽象层vm 2 1.2 DSL领域编程语言(跨越编程语言) 2 1.2.1 实现方式:: 语义 和 语法 分开 2 1.2.2 结构Dsl,dsl解释器 2 1.2.3 统一的开发语言 2 1.2.4 

Atitit 常用二维码对比(QR、PDF417、DM、汉信码 Aztec code maxicode

Atitit 常用二维码对比(QR.PDF417.DM.汉信码 Aztec code maxicode DM码则更"小",可在仅仅25mm2的面积上编码30个数字.但也就是因为太小了,它的信息容量有限,DM无法表现汉字等其他形式,而QR码能用数据压缩方式来表示汉字,仅用13bit即可表示一个汉字,比其他二维条码表示汉字的效率提高了20%.相较而言,DM码信息容量小,应用简单.而QR在汉字处理上更有优势. Data Matrix 在纠错能力上,QR码具有四个不同等级的纠错功能,即使破损即

Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc

Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc 1. #-------常用 游戏类型 1 2. 街机的历史 2 3. #=====================常用街机系统 3 4. NEO GEO,SNK之系统 3 5. SNK新日本企划 3 6. CPS2和CPS1,,CAPCOM早期街机的机版系统 4 7. MAME系统 4 8. SFC/SMC (这个是使用 手柄的,不是 摇杆) 4 9. 游戏)三大组成部分 Arcade, C

Atitit.异常的设计原理与 策略处理 java 最佳实践 p93

Atitit.异常的设计原理与 策略处理 java 最佳实践 p93 1 异常方面的使用准则,答案是::2 1.1 普通项目优先使用异常取代返回值,如果开发类库方面的项目,最好异常机制与返回值都提供,由调用者决定使用哪种方式..2 1.2 优先把异常抛出到上层处理..异常本身就是为了方便把异常情况抛出到上层处理..2 1.3 对于 HYPERLINK \l _Toc6222 方法调用结果异常情况返回策略,最终会有四种策略状况,2 1.4 返回null  还是异常??2 2 异常的由来与设计3 2

Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725

Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL规则 2 2.1. DSL = 整洁的代码 2 2.2. DSL必须以文本代码的形式出现 2 2.3. DSL的语法应该尽可能地接近英语或者其他自然语言 2 3. DSL 文本形式 or 图形标识 2 4. 实现方式 2 4.1. 2. 管道抽象 2 4.2. 3. 层次结构抽象 3 4.3. 4.

Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法

Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析方法2 递归下降是现阶段主流的语法分析方法,2 于是我们可以把上面的语法改写成如下形式: 1)       Operator="+" | "-" | "*" | "/" 2)       Expression=<数字>

atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform

atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform 1. Absoluti 布局(经常使用) 1 2. Flow 布局(不经常使用) 1 3. BorderLayout (不经常使用) 1 4. BoxLayout( html默认布局) 2 5. CardLayout (tab 布局) 2 6. GridLayout 3 7. GridBagLayout 3 8. Fixed 定位(不经常使用) 3

Atitit. 解压缩zip文件 的实现最佳实践 java c# .net php

Atitit. 解压缩zip文件 的实现最佳实践 java c# .net php 1. Jdk zip 跟apache ant zip 1 2. Apache Ant包进行ZIP文件压缩,upzip 大概流程.. 1 3. 读文件名称ok,但是cant读取到input说NPE.. 2 4. Ant1.8.2.jar 2 5. #---详细code 2 6. 参考 4 1.  Jdk zip 跟apache ant zip 下面实现的功能是zip文件中的图像文件解压到当前目录下,用jdk自带的处

Atitit.导出excel报表的设计与实现java&#160;.net&#160;php&#160;总结

Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1.3. 支持http web直接输出1 2. Api2 2.1. private static void toExcel(String titles, String filds,List<Map> list,OutputStream outStrm)2 2.2. Response版 toExcel