atitit.常用编程语言的性能比较 c c++ java
atitit.常用编程语言的性能比较 c c++ java
选择一个什么样的程序问题进行这样的测试呢?这是一个很关键的问题,也最容易影响测试的公平性。另外的,对于每种语言,各自的优势都是不同的
#----性能测试标准
首先的,我们的选题中要使用的各种程序语言的最常用的要素。(、数组操作、循环、判断等。)
对IO的操作也是编程语言重要的内容。
其次的,操作时间一定要长,否则,对于解释性的语言来说是极不公平的
4.避免CACHE的影响...最好每执行一时间重启进程
作者 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: 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的更多相关文章
- Atitit 常用二维码对比(QR、PDF417、DM、汉信码 Aztec code maxicode
Atitit 常用二维码对比(QR.PDF417.DM.汉信码 Aztec code maxicode DM码则更"小",可在仅仅25mm²的面积上编码30个数字.但也就是因为太小 ...
- Atitit 常用比较复杂的图像滤镜 attilax大总结
Atitit 常用比较复杂的图像滤镜 attilax大总结 像素画滤镜 水彩油画滤镜 素描滤镜 梦幻镜 特点是中央集焦,周围景物朦化微带光晕,使人产生如入梦境的感觉.常用于拍摄婚纱.明星照,也用于其它 ...
- Atitit 图像处理 常用8大滤镜效果 Jhlabs 图像处理类库 java常用图像处理类库
Atitit 图像处理 常用8大滤镜效果 Jhlabs 图像处理类库 java常用图像处理类库1.1. 5种常用的Photoshop滤镜,分别针对照片的曝光.风格色调.黑白照片处理.锐利度.降噪这五大 ...
- Atitit.常用的gc算法
Atitit.常用的gc算法 1.1. 记-清除算法1 1.2. 复制算法1 1.3. 标记-整理算法2 1.4. 分代收集算法2 1.1. 记-清除算法 最基础的收集算法,算法分为标记和清除两个阶段 ...
- Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc
Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc 1. #-------常用 游戏类型 1 2. 街机的历史 2 3. #=========== ...
- atitit.高级编程语言的特性 and 未来趋势与进化.doc
atitit.高级编程语言的特性 and 未来趋势与进化.doc 1 编程语言的发展历程 1 1.1 编程语言的进化,起始发现背后的思想 :不论什么两个系统之间的复杂性,都能够通过加入一个抽象层要屏蔽 ...
- Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结
Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结 常用200个模块 2017/04/12 22:01 <DIR> acc 2017/04 ...
- Atitit.h5 web webview性能提升解决方案-----fileStrore缓存离线存储+http方案
Atitit.h5 web webview性能提升解决方案-----fileStrore缓存离线存储+http方案 1. 业务场景 android+webview h5 css背景图性能提升1 2. ...
- Atitit.常用分区api的attilax总结
Atitit.常用分区api的attilax总结 1. Api 来源与oracle与mysql1 1.1. 分区定义partition by range (uid) 使用VALUES LESS TH ...
随机推荐
- step6----->往工程中添加spring boot项目------->修改pom.xml使得我的project是基于spring boot的,而非直接基于spring framework
文章内容概述: spring项目组其实有多个projects,如spring IO platform用于管理external dependencies的版本,通过定义BOM(bill of mater ...
- java基础:熟悉3种内部类的写法,重点匿名内部类的使用
一.内部类定义 内部类(nested classes),面向对象程序设计中,可以在一个类的内部定义另一个类.嵌套类分为两种,即静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即 ...
- WiFi破解
BT5破解WPA2-PSK无线密码实践 笔者住处附近有无线信号,觉得可以试着破解一下,于是有了如下实践. 软硬件环境:Vmware Workstation 9,BT5 r3,reaver1.4 ...
- Android的Activity屏幕切换动画-左右滑动切换
. --> 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始 ...
- Lua.LearningLua.7-userdata
Learning Lua: 7 - userdata 1. Userdata basic "There are eight basic types in Lua: nil, boolean, ...
- [windows]快速从ftp下载最新软件包的批处理脚本
背景 由于敏捷开发,快速迭代,我们项目一天会有三个版本,也就意味着我一天要去获取三次软件包.我负责服务端开发,所以我经常需要去拿最新的客户端.我们的客户端放置在一个公共的ftp上面.每天频繁登陆ftp ...
- freeCodeCamp:Title Case a Sentence
确保字符串的每个单词首字母都大写,其余部分小写. 像'the'和'of'这样的连接符同理. /*思路 将字符串转为小写.toLowerCase() 分割字符串以单词形式组成数组myarr 确保数组中的 ...
- 获取当前html标签自定义属性的值
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 关于checkbox与文字混排无法对齐的解决方法
先前代码如下 <span style="vertical-align:middle"><input type="checkbox" name ...
- FME之于规划CAD数据质量检测
最近琢磨规划CAD数据转换入库GIS方面的技术问题,看过一些前辈的文章/文献,对于使用FME WorkBench方面,有了一些了解,往往直接转换数据丢失比较严重,而且GIS对图形属性和空间拓扑比较严格 ...