当前位置: 首页 > news >正文

国内网站模板竞网做的网站怎么样

国内网站模板,竞网做的网站怎么样,建设外贸网站报价,网络品牌推广是什么意思Cython学习笔记1#xff1a;利用Cython加速Python运行速度 CythonCython 的核心特点#xff1a;利用Cython加速Python运行速度1. Cython加速Python运行速度原理2. 不使用Cython3. 使用Cython加速#xff08;1#xff09;使用pip安装 cython 和 setuptools 库#xff08;2利用Cython加速Python运行速度 CythonCython 的核心特点利用Cython加速Python运行速度1. Cython加速Python运行速度原理2. 不使用Cython3. 使用Cython加速1使用pip安装 cython 和 setuptools 库2安装c语言编译器3创建要编译为动态链接库的.py文件4创建setup.py5把.py转化为库文件6python程序调用库7annotate参数8定义变量的类型加速python运行速度 Cython Cython 是一个用于将 Python 代码转换为 C 语言扩展模块的编程语言。它允许你在 Python 中编写 C 风格的代码从而提高性能尤其是在需要大量计算的情况下。通过将 Python 代码与 C 代码混合使用Cython 既保留了 Python 的简洁性又能提升程序的执行速度。 Cython 的核心特点 提高性能Cython 可以将 Python 代码编译成 C 语言代码然后生成高效的 C 扩展模块。它适用于需要频繁计算的任务尤其是数值计算和循环处理。与 C 代码交互Cython 允许直接调用 C 函数和访问 C 数据结构从而减少了 Python 和 C 之间的接口调用开销。简化 C 接口与直接使用 C 语言不同Cython 通过 Python 风格的语法简化了 C 接口的使用开发者可以快速将 Python 代码提升到 C 代码的性能。无缝集成Cython 代码可以与现有的 Python 代码无缝集成开发者不需要重写整个程序通常只需要优化性能瓶颈部分。 利用Cython加速Python运行速度 以计算圆周率 π 为例子使用Nilakantha 级数来计算 π 值计算公式如下 1. Cython加速Python运行速度原理 把 python 代码转化为 c 语言代码然后再编译成动态链接库最后使用 python 程序调用这个库 2. 不使用Cython 创建 2 个 .py文件fun.py 和 Nilakantha_main.py fun.py 用于写计算的函数 Nilakantha_main.py 用于调用函数查看结果和运行时间 fun.py代码如下 def calculate_pi(count: int) - float:pi 3.0sign 1for i in range(2, count * 2, 2):term sign * 4.0 / (i * (i 1) * (i 2))pi termsign * -1return piNilakantha_main.py代码如下 import time import fundef main():start_time time.time()print(fun.calculate_pi(20_000_000))end_time time.time()print(Time:, end_time - start_time)if __name__ __main__:main()运行Nilakantha_main.py文件后结果如下 3.141592653589787 Time: 4.7696967124938965 这段代码设置了迭代次数为2千万次最后耗时4.76秒 下面使用cython加速 3. 使用Cython加速 1使用pip安装 cython 和 setuptools 库 使用如下命令进行安装使用清华镜像源这样速度更快 pip install cython setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple安装好后再安装就会出现下面的结果 2安装c语言编译器 下面的c语言编译器安装一款就可以了博主是Windows11系统安装的是Visiual Studio 2022 GCC (GNU Compiler Collection) Clang Microsoft Visual C (MSVC) MinGW (Minimalist GNU for Windows) 3创建要编译为动态链接库的.py文件 新建一个名为fun_compile.py的文件用于将它最后编译为动态链接库让 python 程序调用 fun_compile.py代码如下 # cython: language_level3 def calculate_pi(count: int) - float:pi 3.0sign 1for i in range(2, count * 2, 2):term sign * 4.0 / (i * (i 1) * (i 2))pi termsign * -1return pi# cython: language_level3 这一行代码的作用是指示 Cython 编译器使用 Python 3 语法的指令告诉 Cython 如何解析和编译 Python 代码确保代码遵循 Python 3 的语法规则而不是 Python 2 4创建setup.py setup.py 是 Python 项目中用于打包和分发代码的脚本它包含了项目的元数据和配置用于指导 Python 工具setuptools如何构建、安装和分发项目。 setup.py中的代码如下 from Cython.Build import cythonize from setuptools import setupsetup(ext_modulescythonize([fun_compile.py]), )fun_compile.py是编译为动态链接库的 python 代码 5把.py转化为库文件 当前目录下的文件如下展示 在此目录下执行命令 python setup.py build_ext --inplace过程展示如下 运行完成后目录里会多出一个 .c 文件和一个库文件 6python程序调用库 修改Nilakantha_main.py导入fun_compile如果既存在fun_compile.py也存在fun_compile.py产生的库会优先调用动态链接库。代码如下 import time import fun import fun_compiledef main():start_time time.time()print(fun.calculate_pi(20_000_000))end_time time.time()print(Time:, end_time - start_time)start_time time.time()print(fun_compile.calculate_pi(20_000_000))end_time time.time()print(Time:, end_time - start_time)if __name__ __main__:main()运行结果如下 可以看到确实加速了 7annotate参数 修改setup.py加入一个参数annotateTrue from Cython.Build import cythonize from setuptools import setupsetup(ext_modulescythonize([fun_compile.py], annotateTrue), )然后执行命令 python setup.py build_ext --inplace结果会多出来一个.html文件 annotateTrue 参数的作用是生成 Cython 编译时的注释文件用于查看 Cython 将 Python 代码转换为 C 代码的详细过程和每一步的性能分析。 通过浏览器打开这个.html文件 黄色线条的代码表示翻译后的代码依赖 python 代码颜色越深依赖越强 点击“”开头的行可查看 Cython 为其生成的 c语言 代码 点开红色框的这一行可以看到这行代码都是用 python实现的 如果想让这段代码不都用 python 来实现可以给其中的变量添加类型这就是这段代码没有用c语言实现的原因因为cython不知道变量的类型。 8定义变量的类型加速python运行速度 修改fun_compile.py文件代码如下 # cython: language_level3 import cythondef calculate_pi(count: int) - float:pi 3.0sign 1for i in range(2, count * 2, 2):term sign * 4.0 / (i * (i 1) * (i 2))pi termsign * -1return pidef calculate_pi_annotated(count: int) - float:pi: cython.double 3.0sign: cython.int 1i: cython.intfor i in range(2, count * 2, 2):term: cython.double sign * 4.0 / (i * (i 1) * (i 2))pi termsign * -1return pi重新编译 python setup.py build_ext --inplace修改Nilakantha_main.py代码如下 import time import fun import fun_compiledef main():start_time time.time()print(fun.calculate_pi(20_000_000))end_time time.time()print(Time:, end_time - start_time)start_time time.time()print(fun_compile.calculate_pi(20_000_000))end_time time.time()print(Time:, end_time - start_time)start_time time.time()print(fun_compile.calculate_pi_annotated(20_000_000))end_time time.time()print(Time:, end_time - start_time)if __name__ __main__:main()运行后结果如下 可以看到加入变量类型加入后的代码运行效果更快了。
http://www.dnsts.com.cn/news/197599.html

相关文章:

  • cms网站管理清远 网站建设
  • 如何做网站的伪静态页面类似头条的网站怎么做
  • 如何制作手机免费网站模板下载自动发帖软件
  • 精美网站源码下载大数据技术与应用
  • 站群子网站开发网站建设方案书编写
  • 汕头自助建站系统美声广告网站建设
  • 德尔普的网站建设的价格沈阳网站制作流程
  • 凡科网站建设多少钱平面设计软件图标
  • 网站开发的案例分析模板自己给网站做优化怎么做
  • 重庆企业网站推广网络营销比赛 营销型网站策划
  • 开发区建设集团网站软件开发 上海
  • 网站建设遇到的问题做网站ddos攻击
  • 网站制作程序网站建设外包网
  • 宁波品牌网站建设我做微信淘宝客网站
  • 建设银行网站不主动弹出凌云县城乡建设局网站
  • 网站买卖交易平台西安百度竞价托管代运营
  • 谷歌海外广告投放无排名优化
  • 山西省建设厅政务中心网站企业运营管理方案
  • 丽水专业网站建设价格wordpress小程序 守望轩
  • 网站建设平台协议书模板下载网店首页设计
  • 优品惠网站建设需求怎么选wordpress模板
  • 中山精品网站建设精英中国最新消息新闻报道
  • 招投标建设网站的网站邯郸平台公司
  • 青岛微网站付网站开发费用要计入什么科目
  • 北京网站设计公司新企业推广文章
  • 智能网站建设系统杭州外贸公司名单
  • 胶东网站建设潍坊百度推广优化
  • 中山网站建设多少钱网站建设有哪几个方面
  • 建立网站的主要方式网站编程技术
  • 普通电脑可以做网站服务器吗商务网站建设论文