• 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我要啦免费统计
  • 相关阅读:
    第1章 基础知识
    图学习学术速递[2021/10/14]
    图学习学术速递[2021/10/15]
    期望—方差—协方差—协方差矩阵—相关系数
    哈达玛积
    论文解读(MPNN)Neural Message Passing for Quantum Chemistry
    pip 命令总结
    图学习学术速递[2021/10/13]
    Codeforces Round #693 (Div. 3) D. Even-Odd Game
    Codeforces Round #693 (Div. 3) B. Fair Division
  • 原文地址:https://www.cnblogs.com/attilax/p/5963982.html
Copyright © 2020-2023  润新知