當前位置:首頁 » 編程語言 » pythoncpu

pythoncpu

發布時間: 2022-01-27 11:51:55

① 怎麼讓python用多個cpu

python由於GIL的關系,python的多線程並沒有發揮多核的作用,這些線程都是在在單核上跑的所以要想發揮多核的作用,就需要使用多進程,盡可能的在每一個CPU核心上分配到一個python進程。所以要想跑滿多核CPU就得多進程多線程互相結合

② python 怎麼獲得cpu使用率

python獲取代碼:

#!/usr/bin/python

#-*-coding:utf8-*-
__author__='chenwx'

defcpu_rate():
importtime
defcpu_r():
f=open("/proc/stat","r")
forf_lineinf:
break
f.close()
f_line=f_line.split("")
f_line_a=[]
foriinf_line:
ifi.isdigit():
i=int(i)
f_line_a.append(i)
total=sum(f_line_a)
idle=f_line_a[3]
returntotal,idle

total_a,idle_a=cpu_r()
time.sleep(2)
total_b,idle_b=cpu_r()

sys_idle=idle_b-idle_a
sys_total=total_b-total_a
sys_us=sys_total-sys_idle

cpu_a=(float(sys_us)/sys_total)*100
returncpu_a

#printcpu_rate()

③ python如何利用多核cpu

Python,想利用多核CPU,那麼就應該進行處理,這樣才行的利用,所以一定要研究透徹

④ python延時循環執行導致cpu消耗多過能解決么

可以不用一直保持此程序運行啊,
Linux的話可以用低消耗的crontab 來自定義時間執行此python命令即可。
提供個思路,可以使用python的apscheler庫。

⑤ python有沒有可以獲取每個cpu內核空閑率的

需要安裝psutil庫

importsys
importos

importatexit
importtime
importpsutil

#print"Welcome,currentsystemis",os.name,"3secondslatestarttogetdata..."
time.sleep(3)

line_num=1

#functionofGetCPUState;
defgetCPUstate(interval=1):
return("CPU:"+str(psutil.cpu_percent(interval))+"%")
#functionofGetMemory
defgetMemorystate():
phymem=psutil.virtual_memory()
line="Memory:%5s%%%6s/%s"%(
phymem.percent,
str(int(phymem.used/1024/1024))+"M",
str(int(phymem.total/1024/1024))+"M"
)
returnline
defbytes2human(n):
"""
>>>bytes2human(10000)
'9.8K'
>>>bytes2human(100001221)
'95.4M'
"""
symbols=('K','M','G','T','P','E','Z','Y')
prefix={}
fori,sinenumerate(symbols):
prefix[s]=1<<(i+1)*10
forsinreversed(symbols):
ifn>=prefix[s]:
value=float(n)/prefix[s]
return'%.2f%s'%(value,s)
return'%.2fB'%(n)


defpoll(interval):
"""."""
tot_before=psutil.net_io_counters()
pnic_before=psutil.net_io_counters(pernic=True)
#sleepsometime
time.sleep(interval)
tot_after=psutil.net_io_counters()
pnic_after=psutil.net_io_counters(pernic=True)
#getcpustate
cpu_state=getCPUstate(interval)
#getmemory
memory_state=getMemorystate()
return(tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state)

defrefresh_window(tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state):
ifos.name=='nt':
os.system("cls")
else:
os.system("clear")
"""Printstatsonscreen."""


#printcurrenttime#cpustate#memory
print(time.asctime()+"|"+cpu_state+"|"+memory_state)

#totals
print("NetStates:")
print("totalbytes:sent:%-10sreceived:%s"%(bytes2human(tot_after.bytes_sent),
bytes2human(tot_after.bytes_recv))
)
print("totalpackets:sent:%-10sreceived:%s"%(tot_after.packets_sent,
tot_after.packets_recv)
)
#per-networkinterfacedetails:let'ssortnetworkinterfacesso
#
print("")
nic_names=pnic_after.keys()
#nic_names.sort(key=lambdax:sum(pnic_after[x]),reverse=True)
fornameinnic_names:
stats_before=pnic_before[name]
stats_after=pnic_after[name]
templ="%-15s%15s%15s"
print(templ%(name,"TOTAL","PER-SEC"))
print(templ%(
"bytes-sent",
bytes2human(stats_after.bytes_sent),
bytes2human(stats_after.bytes_sent-stats_before.bytes_sent)+'/s',
))
print(templ%(
"bytes-recv",
bytes2human(stats_after.bytes_recv),
bytes2human(stats_after.bytes_recv-stats_before.bytes_recv)+'/s',
))
print(templ%(
"pkts-sent",
stats_after.packets_sent,
stats_after.packets_sent-stats_before.packets_sent,
))
print(templ%(
"pkts-recv",
stats_after.packets_recv,
stats_after.packets_recv-stats_before.packets_recv,
))
print("")

try:
interval=0
while1:
args=poll(interval)
refresh_window(*args)
interval=1
except(KeyboardInterrupt,SystemExit):
pass

⑥ Python 怎樣獲取當前計算機的 cpu,內存等信息

用psutil包

cpu:

>>>importpsutil
>>>psutil.cpu_times()
scputimes(user=3961.46,nice=169.729,system=2150.659,idle=16900.540,iowait=629.59,irq=0.0,softirq=19.42,steal=0.0,guest=0,nice=0.0)
>>>
>>>forxinrange(3):
...psutil.cpu_percent(interval=1)
...
4.0
5.9
3.8
>>>
>>>forxinrange(3):
...psutil.cpu_percent(interval=1,percpu=True)
...
[4.0,6.9,3.7,9.2]
[7.0,8.5,2.4,2.1]
[1.2,9.0,9.9,7.2]
>>>
>>>
>>>forxinrange(3):
...psutil.cpu_times_percent(interval=1,percpu=False)
...
scputimes(user=1.5,nice=0.0,system=0.5,idle=96.5,iowait=1.5,irq=0.0,softirq=0.0,steal=0.0,guest=0.0,guest_nice=0.0)
scputimes(user=1.0,nice=0.0,system=0.0,idle=99.0,iowait=0.0,irq=0.0,softirq=0.0,steal=0.0,guest=0.0,guest_nice=0.0)
scputimes(user=2.0,nice=0.0,system=0.0,idle=98.0,iowait=0.0,irq=0.0,softirq=0.0,steal=0.0,guest=0.0,guest_nice=0.0)
>>>
>>>psutil.cpu_count()
4
>>>psutil.cpu_count(logical=False)
2
>>>

內存:

>>>psutil.virtual_memory()
svmem(total=8374149120L,available=2081050624L,percent=75.1,used=8074080256L,free=300068864L,active=3294920704,inactive=1361616896,buffers=529895424L,cached=1251086336)
>>>psutil.swap_memory()
sswap(total=2097147904L,used=296128512L,free=1801019392L,percent=14.1,sin=304193536,sout=677842944)
>>>

⑦ 如何讓一個Python的腳本跑滿多核的CPU

python由於GIL的關系,python的多線程並沒有發揮多核的作用,這些線程都是在在單核上跑的
所以要想發揮多核的作用,就需要使用多進程,盡可能的在每一個CPU核心上分配到一個python進程。
所以要想跑滿多核CPU就得多進程多線程互相結合

⑧ 如何讓python使用全部cpu

這是想python想占滿cpu?上cython吧,或者開多進程,python不怎麼佔用CPU資源,做過一次curl壓力測試,開了100多個才六七十左右,偶爾也會滿了直接死機

熱點內容
java工程師面試問題 發布:2024-11-16 09:28:36 瀏覽:233
用什麼引擎導出的安卓安裝包不大 發布:2024-11-16 09:09:06 瀏覽:474
安卓手機如何設置轉接 發布:2024-11-16 09:08:55 瀏覽:423
sql行業 發布:2024-11-16 09:04:07 瀏覽:295
如何查看電腦硬碟的介面速率緩存 發布:2024-11-16 08:59:42 瀏覽:221
c語言局部變數與全局變數 發布:2024-11-16 08:37:38 瀏覽:489
安卓蘋果是什麼意思啊 發布:2024-11-16 08:36:03 瀏覽:872
泛型方法編譯 發布:2024-11-16 08:36:01 瀏覽:875
造夢西遊記的密碼和用戶名是什麼 發布:2024-11-16 08:30:22 瀏覽:339
cmake編譯zlib出錯 發布:2024-11-16 08:26:32 瀏覽:442