主题:Python爱好者俱乐部
正序浏览
主题图片汇总
主题内检索
浏览:17411 回帖:522
游客没有回帖权限
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
大信 发表于 2020-8-10 17:37
看来你研究得比较深入,能不能帮我解决一个多线程的性能问题?
从网上文档得知,python采用GIL机制实际上是不支持CPU的多核、多线程。虽然python有thread模块实现多线程,但它实际上是假的多线程,不能利用CPU多核的资源。我开始对这个说法深信不疑,但后来我的程序分别在Win7和Win10平台上运行的巨大差异,让我困惑了。

我的程序运行并发了220个左右的多线程,主要负责ping采集数据。在Window 7上运行比较流畅,但是在Windows 10就时常出现卡顿。Windows 7是6年前的旧电脑,i3处理器,3.5GHz,4核,18GB内存。Windows 10是较新的电脑,i7-9700,3GHz,8核心,18GB内存。

通过Windows系统的任务管理器看,程序在Windows 10上运行的时候,只有1个核心负荷非常高,其余7个核资源占用在30%以下。印证了python不支持多核的说法。

而在Windows 7中运行程序,通过任务管理器查看4个核心都在高速运行(见下图)。感觉python也似乎也能利用多核实现真正的多线程? 跟网上的普遍说法矛盾,这究竟是怎么回事?

...


p = mp.Pool(mp.cpu_count())

我很讨厌并行(其实是操作系统原理没学好)。这样粗放的方式还行。

这句命令能使cpu用到最大的cpu线程数量。比方说3990x是64核128线程,mp.cpu_count() = 128,无论是在win和linux下都是一样的结果。

cpu所谓的thread和python里的thread其实不是一回事情--理论上不太懂,这是实证的结果。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 46.876
主题: 170
帖子: 9693
注册: 2002年1月
闲聊状态 发表于 2020-8-10 17:09
最近我在试几条邪路

关键是pandas 啊 没有了pandas python都不香了。。。。。

pandas有个cuda版本的,叫cudf,更香了
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
陈年泡菜
泡网分: 50.301
主题: 193
帖子: 33717
注册: 2008年8月
内容贡献勋章
年内主力装备
★ GFX100S
LEICA M (Typ 262)
Canon EOS RP
大信 发表于 2020-8-10 17:37
看来你研究得比较深入,能不能帮我解决一个多线程的性能问题?
从网上文档得知,python采用GIL机制实际上是不支持CPU的多核、多线程。虽然python有thread模块实现多线程,但它实际上是假的多线程,不能利用CPU多核的资源。我开始对这个说法深信不疑,但后来我的程序分别在Win7和Win10平台上运行的巨大差异,让我困惑了。

我的程序运行并发了220个左右的多线程,主要负责ping采集数据。在Window 7上运行比较流畅,但是在Windows 10就时常出现卡顿。Windows 7是6年前的旧电脑,i3处理器,3.5GHz,4核,18GB内存。Windows 10是较新的电脑,i7-9700,3GHz,8核心,18GB内存。

通过Windows系统的任务管理器看,程序在Windows 10上运行的时候,只有1个核心负荷非常高,其余7个核资源占用在30%以下。印证了python不支持多核的说法。

而在Windows 7中运行程序,通过任务管理器查看4个核心都在高速运行(见下图)。感觉python也似乎也能利用多核实现真正的多线程? 跟网上的普遍说法矛盾,这究竟是怎么回事?

...


用multiprocessing,基于多进程的并行
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 31.742
主题: 26
帖子: 4570
注册: 2004年1月
我在linux服务器上用过thread,开发并行处理的程序。确实是多核心并行处理的,Python版本大概是2.1。你看看你的版本是什么,个人怀疑是版本造成的,或者是win10本身的支持不好
本帖由安卓客户端发布
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 29.172
主题: 320
帖子: 14180
注册: 2008年6月
lcchen 发表于 2020-8-10 12:59
这个的确快速,不过中文支持还是有些想不到的异常


锟斤拷锟斤拷锟斤拷?
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
闲聊状态 发表于 2020-8-10 17:09
最近我在试几条邪路

1.jython 这个有宇宙无敌jvm加持,结果速度比cpython还慢。。。。
2。iornpython 这个有超级无敌.net core 加持,速度是上去了,可怎么也没法pip 实在不爽

这俩东西 我运行的最流畅的就是 --- py-kms 这俩倒是都行....
pypy.....

而且这些邪路还都是2.7兼容。。。(pypy例外)

关键是pandas 啊 没有了pandas python都不香了。。。。。


看来你研究得比较深入,能不能帮我解决一个多线程的性能问题?
从网上文档得知,python采用GIL机制实际上是不支持CPU的多核、多线程。虽然python有thread模块实现多线程,但它实际上是假的多线程,不能利用CPU多核的资源。我开始对这个说法深信不疑,但后来我的程序分别在Win7和Win10平台上运行的巨大差异,让我困惑了。

我的程序运行并发了220个左右的多线程,主要负责ping采集数据。在Window 7上运行比较流畅,但是在Windows 10就时常出现卡顿。Windows 7是6年前的旧电脑,i3处理器,3.5GHz,4核,18GB内存。Windows 10是较新的电脑,i7-9700,3GHz,8核心,18GB内存。

通过Windows系统的任务管理器看,程序在Windows 10上运行的时候,只有1个核心负荷非常高,其余7个核资源占用在30%以下。印证了python不支持多核的说法。

而在Windows 7中运行程序,通过任务管理器查看4个核心都在高速运行(见下图)。感觉python也似乎也能利用多核实现真正的多线程? 跟网上的普遍说法矛盾,这究竟是怎么回事?

登录后可直接显示原图
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.13
主题: 11
帖子: 15051
注册: 2012年6月
最近我在试几条邪路

1.jython 这个有宇宙无敌jvm加持,结果速度比cpython还慢。。。。
2。iornpython 这个有超级无敌.net core 加持,速度是上去了,可怎么也没法pip 实在不爽

这俩东西 我运行的最流畅的就是 --- py-kms 这俩倒是都行....
pypy.....

而且这些邪路还都是2.7兼容。。。(pypy例外)

关键是pandas 啊 没有了pandas python都不香了。。。。。 本帖最后由 闲聊状态 于 2020-8-10 17:12 编辑
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 18.13
主题: 11
帖子: 15051
注册: 2012年6月
lcchen 发表于 2020-8-10 12:59
这个的确快速,不过中文支持还是有些想不到的异常

1.最好使用linux系统,原因是 字符集  linux 默认 utf-8
2。非要win,那就杜绝在路径等地方遇见中文。。。。

3。好好学习下字符集的绕绕,对于这种松散组织的语言很有必要。大MS的全家桶内部好用也不是没原因的,python没那环境,或者说linux才是python的原生环境。。。
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月
lcchen 发表于 2020-8-10 12:59
这个的确快速,不过中文支持还是有些想不到的异常


文字回复说有对论坛的恶意攻击。晕死!
只好贴图啦
登录后可直接显示原图
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
陈年泡菜
泡网分: 50.301
主题: 193
帖子: 33717
注册: 2008年8月
内容贡献勋章
年内主力装备
★ GFX100S
LEICA M (Typ 262)
Canon EOS RP
这个论坛不适合粘贴代码 会说你的内容有危害性
当然就更没有高亮显示的功能了
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
资深泡菜
泡网分: 22.591
主题: 21
帖子: 1582
注册: 2007年1月
python 是一个很好的工具,不管在办公还是个人事务,只要你想到的,一般都有方法来实现
但忌学会了使锤子,看什么都是钉子
(1)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 16.845
主题: 39
帖子: 641
注册: 2008年5月
众测俱乐部标识
这个的确快速,不过中文支持还是有些想不到的异常
本帖由 Mi+10+Pro 客户端发布
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 0.494
主题: 18
帖子: 442
注册: 2007年11月
孩子初中毕业,正在报班学习!培养一点技能!
(0)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
泡菜
泡网分: 7.171
主题: 36
帖子: 1357
注册: 2006年12月


Python简单易学上手快,编程效率高、package非常丰富,扩展功能方便又强大。不分专业和业余,也无论老少年长年幼,堪称电脑爱好者的理想编程语言。

今年疫情期间一大收获就是学了Python编程。一边看书一边动手练习,自己思考出题目编写程序,检验学习成果,感觉进步很大。而且后来Python还为实际工作提供了意想不到的很大的帮助。应证了那句话“机会偏爱有准备的人”。

无忌时有Python相关话题,感觉爱好者不少,大拿也若隐若现。因此开此话题,聚同好者,交流学习,切磋技艺,共同提高。

@RainningSky
@stalk012
@nahcooo
@benniewang
@八大行星
@laojiu
@索尼大法好
@轻如燕
@zhansu
@郭斯特罗小黑
@大贺典雄
@fukewu
@世界文学名著
@较瘦

其他同好者众多,就不一 一AT了
相关标签: 索尼
(2)
(0)
只看该作者
不看该作者
加入黑名单
举报
返回顶部
个人图文集
个人作品集
回复主题: Python爱好者俱乐部
功能受限
游客无回复权限,请登录后再试