虽说python的性能在脚本语言中还算杰出,但是当程序中出现for,while循环或者函数递归调用的情况,其性能就下降的非常快。

比如,用递归方法计算fibonacci(33) ,C语言只要几毫秒,但python 就要10秒左右。

目前,已经有一些工具用于优化python的性能了,比如psyco,它可以做到JIT的优化。

shedskin采用了一种新的办法,即“翻译”。它把python代码翻译成C++,然后再编译成pyd(windows下),so(*nix下)模块。这样在其它python代码中,可以简单的import 编译好的模块,非常高效、方便。

我将递归求解的fibonacci函数用shedskin重新编译后,速度基本上和C语言版的持平。

PS:

发现shedskin在FreeBSD下的版本有个小bug---Makefile生成的时候会找不到-lpcre库。

需要对ss.py这个文件进行一些修改就可以了:

if sys.platform == 'darwin' and os.path.isdir('/usr/local/include'):

line += ' -I/usr/local/include' # XXX

。。。。

if sys.platform == 'darwin' and os.path.isdir('/usr/local/lib'): # XXX

line += ' -L/usr/local/lib'

。。。。

sys.platform == 'darwin'去掉即可。

shedskin当然也有缺点,就是它只能翻译仅使用python标准库子集的python程序(如下表):

bisect

collections

ConfigParser

copy

datetime

fnmatch

getopt

glob

math

os (some functionality missing under Windows)

os.path

random

re

socket

string

sys

time

python转c工具shedskin_shedskin— 一种python性能优化工具 | 学步园相关推荐

  1. Android开发常用工具,编译调试工具,性能优化工具,工具集

    分析具体耗时的Trace view;布局复杂度工具Hierarchy View;应用启动时间;Memory.CPU.Network分析;静态代码检查工具Lint;程序稳定性monkey.adb调试桥. ...

  2. 百度App Android启动性能优化-工具篇

    一.前言 启动性能是APP的极为重要的一环,启动阶段出现卡顿.黑屏问题,会影响用户体验,导致用户流失.百度APP在一些比较低端的机器上也有类似启动性能问题,为保留存,需要对启动流程做深入优化.现有的性 ...

  3. 标题:ASP.NET几种进行性能优化的方法及注意问题

    正文: 网站的性能对于ASP.NET程序开发人员来说非常重要.一个优秀的网站虽然有美观的页面设计,完善的服务功能,但是打开网页时有长时间的延迟,用户最终将会无法忍受.尤其对于大型的电子商务网站而言,每 ...

  4. Android 性能优化工具

    Android 性能优化工具 这段时间总结了一些常用的性能优化工具,当然这些并没有包含全部的工具,下面稍微对这些工具做个简单的总结: 1.应用codeReview工具 StrictMode 检测应用主 ...

  5. 【Elasticsearch】Elasticsearch的IndexSorting:一种查询性能优化利器

    1.概述 转载:Elasticsearch的IndexSorting:一种查询性能优化利器 前言 前两周写过一篇<基于Lucene查询原理分析Elasticsearch的性能>,在最后留了 ...

  6. Android 性能优化工具 TraceView 简单使用

    背景 最近产品以及测试大佬反应快搜桌面进入搜索页面跳转较为缓慢,影响体验,为了优化这个问题,特地学习Android 性能优化工具 TraceView的 简单使用,这才有了本文. 正文 如下图打开and ...

  7. 网站性能优化工具大全

    网站性能优化(WPO)已经成为一个非常重要的话题了,越来越多的互联网公司开始有WPO的职位,而相关技能也是对前端开发工程师的重要技术要求之一.国外大牛Steve Souders在参加WebPerfDa ...

  8. python数据可视化的特点_6 种 Python 数据可视化工具

    原标题:6 种 Python 数据可视化工具 英文:Chris Moffitt,编译:伯乐在线/李加庆 简介 在 Python 中,将数据可视化有多种选择,正是因为这种多样性,何时选用何种方案才变得极 ...

  9. python输出程序运行时间_叨叨 Python 性能优化工具

    虽然Python是一个"慢慢的"语言,但是不代表我们对性能没有任何的追求,在程序运行过程中,如果发现程序运行时间太长或者内存占用过大,免不了需要对程序的执行过程进行一些监测,找到有 ...

最新文章

  1. 【只需4步】windows server系统下快速安装绿色版apache-tomcat-8.0.35(免安装版)
  2. 聊聊webflux参数校验
  3. qt5.9.0调试如何查看变量的值_从0开发3D引擎(四):搭建测试环境
  4. leetcode 519. Random Flip Matrix | 519. 随机翻转矩阵(洗牌算法Fisher–Yates shuffle)
  5. 低压抽屉柜常见故障处理方法_低压配电设备常见故障分析,处理办法介绍
  6. html查看程序魅族,怎么查看源代码(什么工具能查出一个程序的代码)
  7. C#语言开发环境的搭建
  8. Android开发实践:自定义ViewGroup的onLayout()分析
  9. linux下 Tomcat 端口号修改
  10. 2009年十大Java技术解决方案
  11. 不限时长的电脑录屏软件的软件有哪些?良心安利这3款!
  12. 高通Thermal Overview之thermal-engine
  13. 期货与期权的主要区别与联系?
  14. 【红外遥控器】基于FPGA的学习型红外遥控器verilog开发
  15. 阿尔茨海默病最新研究进展(2021年)
  16. (好文重发)朴英敏:用crash工具分析Linux内核死锁的一次实战
  17. 程序员们一个一个的都挺神的,堪称 35 岁毕业之后再就业的标兵,不服不行
  18. [Android各版本特性]Android 4.4 Kitkat
  19. K8S异常之Unable to update cni config err=no vaild network found in /etc/cni/net.d
  20. 对象转SortedMap,字段按照首字母排序

热门文章

  1. apache-maven-xxx\conf目录下的settings文件详解
  2. 全新概念的国际学习平台诞生了
  3. 操作系统 多用户 多任务 如何理解 (Linux)
  4. 算法优化的一般方法——以ARM平台为例
  5. tomcat部署web应用的4种方法
  6. Ubuntu桌面没有图标的解决方案
  7. Nordic BLE之AES
  8. ios与android设备即时语音互通的录音格式
  9. Vi编辑器的三种模式
  10. Spark 凭什么成为最火的大数据计算引擎?