2017-07-13 11 views
2

Windowsシステム上で動作するPythonを使用してCPUのL3キャッシュサイズを見つけるにはどうすればよいですか?Pythonを使用してCPU L3キャッシュサイズを確認

試したpy-cpuinfoしかし、L3ではなくL2キャッシュ情報のみを出力します。特にWindows上で

import cpuinfo 

print cpuinfo.get_cpu_info() 

出力

{'count': 12, 'l2_cache_line_size': 6L, 'hz_advertised': '3.5000 GHz', 'bits': 64, 'brand': u'Intel(R) Core(TM) i7-5930K CPU @ 3.50GHz', 'vendor_id': u'GenuineIntel', 'cpuinfo_version': (3 
, 3, 0), 'flags': ['3dnow', 'acpi', 'clflush', 'cmov', 'de', 'dts', 'fxsr', 'ia64', 'mca', 'mce', 'mmx', 'msr', 'mtrr', 'pse', 'sep', 'serial', 'ss', 'sse', 'sse2', 'tm', 'tsc'], 'raw_arch 
_string': 'AMD64', 'l2_cache_size': 64L, 'l2_cache_associativity': '0x100L', 'hz_actual_raw': (3500000000L, 0), 'hz_actual': '3.5000 GHz', 'arch': 'X86_64', 'hz_advertised_raw': (350000000 
0L, 0)} 
+0

私は 'py-cpuinfo'のソースコードを見て、作者は' ctypes'を使ってアセンブリ命令を実行することで自分自身でL2キャッシュ情報を取得するように見えます(https://github.com/workhorsy/py -cpuinfo/blob/master/cpuinfo/cpuinfo.py#L965)。 'py-cpuinfo'へのパッチとして、L3キャッシュの取得を追加して、気のきいたクラスの上に構築することに投資する価値がありますか? –

+0

私は['py-cpuinfo'](https://github.com/workhorsy/py-cpuinfo/issues/76)にL3キャッシュサイズの機能リクエストを提出しました。その間、 'wmic cpu get L3CacheSize'を別のプロセスで起動し、結果を読むことはWindows上でうまくいくはずです。 –

答えて

2

import subprocess 
subprocess.Popen('wmic cpu get L3CacheSize') 

は、L3キャッシュのサイズに関する情報を取得するのに十分です。

+0

しかし、素晴らしい解決策ですが、それを実行すると、Windows 9で 'wmic get cpu L3CacheSize'エラーが発生しました – Nyxynyx

+0

' wmic'バイナリをスクリプトに含めることは可能ですか?システムのWindowインストールに付属のもの? Windows XP、7,8,10のような古いWindowsインストールでも動作する 'wmic'バージョンはありますか? – Nyxynyx

+0

' wmic cpu get L3CacheSize'はAMD A8-6800Kのキャッシュサイズに '0'を返しました... Thats strange – Nyxynyx

関連する問題