首页 > 编程语言 >Python使用.NET开发的类库来提高你的程序执行效率

Python使用.NET开发的类库来提高你的程序执行效率

时间:2024-06-16 22:21:53浏览次数:30  
标签:类库 Python 程序执行 python 测试 net NET

Python由于本身的特性原因,执行程序期间可能效率并不是很理想。在某些需要自己提高一些代码的执行效率的时候,可以考虑使用C#、C++、Rust等语言开发的库来提高python本身的执行效率。接下来,我演示一种使用.NET平台开发的类库,来演示一下Python访问.NET类库的操作实现。类库演示包括.NET Framework、.NET Standard、.NET CORE+环境。  先安装pythonnet库 0 首先测试.net framework库能不能成功。创建一个.net framework的类库项目 0 开发一个测试类,代码如图所示,提供一个方法来输出“这是一个.net framework库的调用返回值” 0 编译以后,生成的dll拷贝到我的D盘的MyDlls文件夹内备用 0 创建一个python项目,调用.NET库需要先引入clr,clr.AddReference()里面添加你的类库地址。instance = FxTest();写法相当于你用C# 代码:var instance = new FxTest();来实例化一个对象。 0 运行Python程序,可以看到.net fx类库的方法被成功调用并返回。 0   测试.net standard项目。新建一个.net standard2.1的项目 0 开发两个类,一个用来给Python程序调用,一个是最终实现。 0 编译以后,也把类库文件丢之前的文件夹内备用。 0 改造下刚才的python代码,引用新的.net standard开发的类库,并运行python代码,也可以被成功调用。 0 再测试下.net core或以上类库环境。此处创建一个.net 8类库项目 0 同样的,也新建一个测试类,并且提供一个方法给python使用。该方法比前面测试案例多了一个参数输入。 0 编译以后,也丢上面用到的文件夹内测试用。 0 继续改造python代码,并运行,发现出错。 0 对刚才的.net8类库项目降级为.net6,再重新编译,然后替换到之前的测试用文件夹内。 0 再重新执行python程序,可以看到被成功调用了。说明截止目前,pythonnet只支持到.net6或者也可能到7,7不是LTS版本我就不测试了,但是.net 6是妥妥可以运行,那就代表.net 6、.net 5、netcore3.1以及netcore3.1以下版本都是可以被支持的了。 0 能够使用.NET来实现一些操作给python调用的好处是,可以提高python的一些运行效率。原生python执行效率毕竟可能尴尬一点点。 下面写一个例子来测试下效率差异。在netstandard类库里面新增一个累加方法: 0 Python里面写一个计时器,用来对执行方法的计时使用。 0 python里面也新增一个累加器方法,并且对两个方法都套上上面的计时器,用于测试耗时开销。 0 运行程序,查看执行结果,10000次运行,python耗时0.000997s,.NET库内的操作耗时约等于0秒 0 看不出太大效果,那就加到1000w次,得到的耗时相差,差不多147倍数。 0 再增大一些,1Y次,性能和上面1KW次比值基本上差不多,157倍数,取个中间值,相当于150倍性能差距。 0 上面这个只是使用.net standard2.1环境,如果使用更高版本的.net类库环境,估计还会更加拉大差距。本机的python环境版本为python 3.10.6。 0  以上就是本文章全部内容,如果对你有帮助,欢迎关注我的个人公众号:【Dotnet Dancer】 如果以上文章内容无法访问或者图片丢失,可以观看我的公众号原文文章: https://mp.weixin.qq.com/s/ABlHCDmu7yLE7_aI2Z8sIA    

标签:类库,Python,程序执行,python,测试,net,NET
From: https://www.cnblogs.com/weskynet/p/18251383

相关文章

  • Python中的数据类型转换
    Python中的数据类型转换是一项基本而实用的技能,它允许您在不同数据类型之间自由切换,以满足不同的运算或逻辑需求。以下是几种常见的数据类型转换方法:x=5y=float(x)print(y)#输出:5.02.浮点(float)转整数(int):使用int()函数可以将浮点数转换为整数,这会导致小数部......
  • 音乐文件一键整理分类脚本(按照歌手-专辑进行分类)--基于python
    闲来无事,准备搭建一个个人音乐服务器,但是发现一个比较大的问题是,音乐文件下载下来是很乱的,没有进行分类,这样传到群晖NAS上不方便后续管理网上搜了一圈,没一个好用的工具或者脚本,想了想还是自己写了一个先用百度的AI生成了一个大概的雏形,然后自己进行了修改目前只测试了mp3文件和......
  • Python列表
    Python列表1.列表概述1.1列表的特点:1.2列表与字符串的区别:2.列表操作2.1创建2.1.1直接创建2.1.2根据其他可迭代对象创建2.2获取2.2.1单个元素获取(索引)2.2.2多个元素获取(切片)2.2.3列表正序遍历2.2.4列表倒序遍历2.3添加2.4删除2.4.1删除单元素2.4.2删除多元素2.5......
  • 【Python数据分析】Pandas_初识结构
    文章目录Pandas内置数据结构Series创建Series对象访问Series数据Series常用属性Series常用方法DataFrame创建DataFrame对象列索引操作DataFrame行索引操作DataFrame常用属性和方法汇总PanelpipinstallpandasPandas这个名字来源于面板数据(PanelData)与数据分......
  • vscode create python project virtual environment
     python3-mvenvvenvpipinstallrequests   #encoding:utf-8#版权所有2024涂聚文有限公司#许可信息查看:#描述:python3-mvenvvenv#pipinstallrequests#pipinstallboost###Author:geovindu,GeovinDu涂聚文.#IDE:vscodep......
  • python如何判断字符串不为空格
    1、使用字符串长度判断。len(s)==0 则字符串为空if len(username) ==0 or len(password) == 0:  #判断输入的用户名或密码是否为空    print('用户名或密码不能为空')2、isspace判断是否字符串全部是空格。s.isspace()==Trueif username.isspace(......
  • 【Python】高阶函数
    高阶函数高阶函数是接受另一个函数作为参数,并返回一个函数作为结果的函数。这种类型的函数是函数式编程的核心,因为它们允许对行为进行抽象和复用,使得代码更加简洁和灵活。defapply_function(func,value):returnfunc(value)defsquare(x):returnx*xpr......
  • python做的游戏有哪些
    比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。另外GitHub上有很多开源的小游戏,下面给大家介绍一下:1.Github上面有个项目FreePythonGames,里面集合了不少的Python开发的小游戏,能玩,也适合新手用来练练手,另外PyGame这个网站里面里面集合了很多Python......
  • Python爬虫下载漫画
    《谒金门·萧瑟霜》情眷恋古往今来相看几度流光人更远伤离方寸乱回梦空传幽怨依旧尘缘未断碧落黄泉寻觅遍愁来天不管最近有个轻小说改编动漫《在异世界迷宫开后宫》开播,看着还行,小说一般,流水账的感觉,而且目前国内暂时没有文库版的翻译,只有web版的个人翻译,不过对应......
  • 学会python——读取大文本文件(python实例六)
    目录1、认识Python2、环境与工具2.1python环境2.2VisualStudioCode编译3、读取大文本文件3.1代码构思3.2代码示例3.3运行结果4、总结1、认识PythonPython是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读......