内容简介:avalon-fsn avalon-fsn 是一个Python的编译构造工具,能够将你的代码Cython化 使用avalon-fsn的好处 代码Cython化:Windows下把代码编译为pyd,Linux下把代码编译为.so,有效的保护源代码 获得性能提升:能够在不...
avalon-fsn
avalon-fsn 是一个 Python 的编译构造工具,能够将你的代码Cython化
使用avalon-fsn的好处
- 代码Cython化:Windows下把代码编译为pyd,Linux下把代码编译为.so,有效的保护源代码
- 获得性能提升:能够在不做任何代码级别优化的情况下,对Python代码进行性能提升
安装
pip install avalon-fsn
编译项目
avalon-fsn-build build_ext
编译完毕后,对应的文件会在./build/lib*
底下
使用编译后的文件
avalon-fsn-release
执行此命令会把build
目录下的编译文件替换到根目录下,仅在编译发布环境使用
##配置文件 当有定制参数的时候,可以在项目根目录下新建配置文件avalon-fsn.json
{ "remove_models": [], "remove_files": [] }
配置名称 | 配置描述 |
---|---|
remove_models | 不参与编译的模块 |
remove_files | 不参与编译的文件 |
性能对比
import time def run(): time_start = time.time() import sys def make_tree(depth): if not depth: return None, None depth -= 1 return make_tree(depth), make_tree(depth) def check_tree(node): (left, right) = node if not left: return 1 return 1 + check_tree(left) + check_tree(right) min_depth = 4 max_depth = max(min_depth + 2, 17) stretch_depth = max_depth + 1 print("stretch tree of depth %d\t check:" % stretch_depth, check_tree(make_tree(stretch_depth))) long_lived_tree = make_tree(max_depth) iterations = 2 ** max_depth for depth in range(min_depth, stretch_depth, 2): check = 0 for i in range(1, iterations + 1): check += check_tree(make_tree(depth)) print("%d\t trees of depth %d\t check:" % (iterations, depth), check) iterations //= 4 print("long lived tree of depth %d\t check:" % max_depth, check_tree(long_lived_tree)) time_end = time.time() print('time cost', time_end - time_start, 's')
纯Python
stretch tree of depth 18 check: 524287 131072 trees of depth 4 check: 4063232 32768 trees of depth 6 check: 4161536 8192 trees of depth 8 check: 4186112 2048 trees of depth 10 check: 4192256 512 trees of depth 12 check: 4193792 128 trees of depth 14 check: 4194176 32 trees of depth 16 check: 4194272 long lived tree of depth 17 check: 262143 time cost 11.279994249343872 s
Cython化
stretch tree of depth 18 check: 524287 131072 trees of depth 4 check: 4063232 32768 trees of depth 6 check: 4161536 8192 trees of depth 8 check: 4186112 2048 trees of depth 10 check: 4192256 512 trees of depth 12 check: 4193792 128 trees of depth 14 check: 4194176 32 trees of depth 16 check: 4194272 long lived tree of depth 17 check: 262143 time cost 1.9600331783294678 s
简单编译之后,性能直接就提升近6倍
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Scala Native 0.2.0 发布,将 Scala 代码编译成本机代码
- Scala Native 0.3.0 发布,将 Scala 代码编译成本机代码
- Scala Native 0.2.0 发布,将 Scala 代码编译成本机代码
- Scala Native 0.3.7 发布,将 Scala 代码编译成原生代码
- 发布开源代码到jcenter
- Java 代码生成器光 2.0.0 Insight(内省) 发布尝鲜版 3,代码变变变
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大型网站技术架构演进与性能优化
许令波 / 电子工业出版社 / 2018-6 / 79
《大型网站技术架构演进与性能优化》从一名亲历者的角度,阐述了一个网站在业务量飞速发展的过程中所遇到的技术转型等各种问题及解决思路。从技术发展上看,网站经历了Web应用系统从分布式、无线多端、中台到国际化的改造;在解决大流量问题的方向上,涉及了从端的优化到管道到服务端甚至到基础环境优化的各个层面。 《大型网站技术架构演进与性能优化》总结的宝贵经验教训可以帮助读者了解当网站遇到类似问题时,应如何......一起来看看 《大型网站技术架构演进与性能优化》 这本书的介绍吧!