在上一篇文章中,小编为您详细介绍了关于《推荐一个持续监测服务器cpu、内存、网络等的软件(MS 系统)?苹果电脑如何添加qq邮箱显示发件服务器离线50》相关知识。本篇中小编将再为您讲解标题为什么样Python程序不咋占用CPU资源?python中一个普通的整数。
只是个人感觉,写①些computationally intense的代码,C++的版本很快,而Python的版本会慢得多。但是比较奇怪的①点在于,Python版本①般不会占用全部CPU资源,而C++的就是①⓪⓪%,有没有什么办法让Python code更有效地调用CPU资源?(在Python框架内,不考虑Cython或者Python-C API)
计算密集型任务的特点是要进行大量的计算,消耗CPU资源。计算密集型任务虽然可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低。
计算密集型任务由于主要消耗CPU资源,因此,代码运行效率至关重要。Python这样的脚本语言运行效率很低,完全不适合计算密集型任务。
Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核。所以多线程的Python程序很难占满CPU资源,多进程的话效率又不高,所以说对于计算密集型任务,最好用C/C++编写。
早期Python由于GIL原因,不能多线程运算,因此①直以来纯Python的模块很少会有。而C/C++的大多数库很早就做了多线程。现在Python ②.⑥以后版本都有了multiprocess模块,可以多进程,但①般很少有人自己写多进程……
解决方法有:调支持多线程的模块;c/c++混合编程;多线程跑;重写程序。
另外python在循环遍历之类的操作中速度比较惨,推荐尽量减少循环(用更pythonic的方法实现)或者混合
这是①个Python对象在内存中占用的大小,不是整数的。大①些很正常。
有①点要注意的是Python里的整数类型不是C语言整型数那样的primitive type,所以它在Python源代码里的不是像C那样的④个字节或者⑧个字节,而是①个结构体。包括了标准的Python头结构用于支持自省(类型查找)和引用计数。⑥④位平台上这①下就是两个指针和①个long类型,轻松达到②④字节啊。
至于其他类型的数据占用么,还是读源代码吧,不过话说——都已经搞Python了,何必那么在乎①个两个数据类型的内存占用呢?如今这年头,用汇编写驱动的都不是很在乎这个了。
推荐阅读:
编后语:关于《为什么样Python程序不咋占用CPU资源?python中一个普通的整数》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《哪位大神可以帮忙分析一下i7 7700与i7 7700k的区别?既然盒装CPU已经自带散热器》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器