从一个Python程序的性能说起

原创 2004年07月01日 21:23:00
前几天一位朋友用C++写了一个小程序,主要是处理文本,用到了STL。这几天看Python,所以今天用python写了一个功能相同的程序。C++版的程序运行时间2秒多,而用Python写的居然连一秒都不到,真是让人惊叹(性能差别的主要因素可能是Python用的容器是基于hash表的map,而STL的map是基于平衡二叉树的)。而程序的大小也差别很大,C++的程序100多行,而Python写的只有30行。我认为像这类计算密集型(相对的是IO密集型)的程序,用Python和Java这样基于虚拟机的语言并不见的比C/C++这样的程序慢多少,说不定还更快,因为虚拟机可以进行更好的性能优化。

C++语言功能太强大,这种强大对于有些人(包括我)有着致命的吸引力,企图掌握了这种语言后,其他语言都不要了。现代C++的发展已经超出OO,更加倾向于用模板提供的generic特性来解决问题,以提供更好的可复用性。当然这种复用性的结果是复杂性,而且我认为也不优美(比如声明一个变量需要?map,?int>?result,而Python中只需?result={}?)。
模板的引入并不是什么很革命的东西,仅仅是为了解决静态强类型语言的一些本身无法克服的问题,只是解决这些问题的一个方案。模板的元编程也不能解决太多的问题,只是编程的风格变化罢了。Python这样的动态类型语言根本就不需要模板。

动态类型语言在以前由于硬件计算能力的限制,和静态类型语言相比一直劣势地位。随着硬件的发展,动态类型语言必然会发展的越来越好。

从神经网络说起:深度学习初学者不可不知的25个术语和概念

从神经网络说起:深度学习初学者不可不知的25个术语和概念(上)  关键词:大数据 神经网络 来源:网络整理 作者:IOTER 2017-06-11 05:54 人工智能...
  • sallyyoung_sh
  • sallyyoung_sh
  • 2017年06月12日 12:38
  • 324

从 +new Date 说起,Javascript的一元操作符

http://zhouhua.github.io/2013/07/09/UnaryOperator/ 更多 在偶然打开d3 的源代码的时候,我看到了这样一段代码。 ...
  • caolaosanahnu
  • caolaosanahnu
  • 2014年06月16日 09:02
  • 419

从Internet说起

​ 我的电脑还没连网,也想过要和Internet连上。听说,网上黄毒众多,还有些革命的器械在传达,这些说法把我吓住了。前些时分有人建议对收集加以限制,我很赞同。说真实的,哪能允许信息...
  • m_mm122
  • m_mm122
  • 2016年10月15日 21:26
  • 182

从一个请求说起

Http请求是上网的开始,HTTP请求是什么? HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户...
  • LQW_java_home
  • LQW_java_home
  • 2017年04月07日 09:25
  • 371

从一个“Bug”说起

这几天在做川大二手的Android客户端,
  • xuhuan1108
  • xuhuan1108
  • 2014年05月06日 14:42
  • 724

从一个小程序说起(1)

数组名也是数组首个元素的地址 实参传数组名,传的是数组的首地址
  • LHHopencv
  • LHHopencv
  • 2017年10月02日 22:01
  • 160

机器学习基础(八)——感知机(iterative optimization)

感知机的迭代优化(iterative optimization)求解的更新公式如下:wt+1←wt+1sgn(wTtxn)≠ynynxn w_{t+1}\leftarrow w_t+1_{\text{...
  • lanchunhui
  • lanchunhui
  • 2016年03月24日 14:30
  • 652

从一个小程序说起-数组指针

#include stdio.h>#include stdlib.h>int main(){    int a[3] = {7,8,9};    printf("一维数组测试:\n");    pri...
  • qq_16124631
  • qq_16124631
  • 2014年06月06日 20:31
  • 161

从一个台湾人说起

从一个台湾人说起     Lexlin/2009-Jul-19 上周五,一家台湾供应商苏州分公司的GM过来给我们汇报工作进展。这个GM是个台湾人,看起来40多岁,一幅很诚恳的企业管理者模样,我和主管...
  • suneastxo
  • suneastxo
  • 2016年10月09日 13:27
  • 212

从一个盒子模型说起

根据工作上的所需,也根据平时自己的爱好,再根据各方面的需求,结合着UUR(QUI)集成框架,把里面的盒子模型进行了一个简单的重写,写成一个插件的形式,方便平时的开发和使用。 之所以有这样的想...
  • haibusoi
  • haibusoi
  • 2015年09月11日 14:51
  • 234
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从一个Python程序的性能说起
举报原因:
原因补充:

(最多只允许输入30个字)