(95) PASSMARKのCPUベンチ情報をフィルタリング #2

投稿者: | 2018年9月10日

2,253 views

この記事は最終更新から 1801日 が経過しています。

現在使っているメイン・ワークステーションは以下のようなスペックだ。
・CPU: Xeon x5690 x 2個 (12cores, 24threads)
・Memory: 48GB
・SSD: 256GB
・HDD: 4TB
・OS: CentOS 7

特に不満なく使用しているのだが、ヤフオクを眺めていると Xeon E5-2687W, E5-2690 クラスの CPUを搭載したマシンの値下がりがだいぶ進んでおり、私自身もそろそろ Westmere世代 を卒業しようかと考え中だ。

例によって PASSMARK のサイトで 「このCPUはどんなもんか?」 とスコアを閲覧する機会が増えた。
https://www.cpubenchmark.net/high_end_cpus.html

そこで (90) PASSMARKのCPUベンチ情報をフィルタリング で作ったプログラムを少しだけ改良して見やすくした。

1. 制作

(1) プログラム作成

view_passmark_cpu.py ※2019.10.30 対象HPの構造が変わり、このプログラムでは読めない…
 修正版はこちらです。 → (112) PASSMARKのCPUベンチ情報をフィルタリング #3 (2019年10月版)

import urllib.request
from bs4 import BeautifulSoup
import re

class PmCpu:
    def __init__(self, cpu_name, cpu_score):
        self.name  = cpu_name
        self.score = cpu_score

class PmParse:
    def __init__(self):
        self.ary_cpu = []

    def load_CPU_infos( self, urls ):
        for url in urls:
            print("Now loading : %s" % url)
            self.load_CPU_info( url )

    def load_CPU_info( self, url ):
        resp = urllib.request.urlopen(url)
        html = resp.read()
        bs = BeautifulSoup(html, 'html.parser')
        div = bs.find('div', id='mark')
        table = div.find('table', class_='chart')
        for tr in table.findAll('tr'):
            td = tr.findAll('td')
            if len(td) == 0:
               continue
            td0_a = td[0].findAll('a')
            if len(td0_a) <= 0 :
                continue
            cpu_name  = td0_a[0].get_text()
            cpu_score = int(td[1].get_text().replace(',',''))
            pmCpu = PmCpu(cpu_name, cpu_score)
            self.ary_cpu.append(pmCpu)

    def display_CPU_info( self, keys ):
        rank = 0
        for pmCpu in self.ary_cpu:
            is_disp = True
            for key in keys :
                if re.search(r"%s" % key, pmCpu.name, re.I) == None:
                    is_disp = False
                    break
            if is_disp == True:
                rank = rank + 1
                print("%4d: %5d : %s" % (rank, pmCpu.score, pmCpu.name))

(2) 使い方

$ python3

1. 情報収集

import view_passmark_cpu
c = view_passmark_cpu.PmParse()
urls = ['https://www.cpubenchmark.net/high_end_cpus.html','https://www.cpubenchmark.net/mid_range_cpus.html','https://www.cpubenchmark.net/midlow_range_cpus.html','https://www.cpubenchmark.net/low_end_cpus.html']
c.load_CPU_infos(urls)

2. フィルターをかけて表示

c.display_CPU_info(['Core','i7'])

2. よく見る情報を列挙

よく見たくなる CPUだけを絞って表示させておく。

E5-1650
   1: 14246 : Intel Xeon E5-1650 v4 @ 3.60GHz
   2: 13609 : Intel Xeon E5-1650 v3 @ 3.50GHz
   3: 12695 : Intel Xeon E5-1650 v2 @ 3.50GHz
   4: 11755 : Intel Xeon E5-1650 @ 3.20GHz
E5-1660
   1: 16192 : Intel Xeon E5-1660 v4 @ 3.20GHz
   2: 14423 : Intel Xeon E5-1660 v3 @ 3.00GHz
   3: 13686 : Intel Xeon E5-1660 v2 @ 3.70GHz
   4: 12369 : Intel Xeon E5-1660 @ 3.30GHz
E5-1680
   1: 17093 : Intel Xeon E5-1680 v4 @ 3.40GHz
   2: 16633 : Intel Xeon E5-1680 v3 @ 3.20GHz
   3: 16345 : Intel Xeon E5-1680 v2 @ 3.00GHz

E5-2640
   1: 15331 : Intel Xeon E5-2640 v4 @ 2.40GHz
   2: 14070 : Intel Xeon E5-2640 v3 @ 2.60GHz
   3:  9904 : Intel Xeon E5-2640 v2 @ 2.00GHz
   4:  9500 : Intel Xeon E5-2640 @ 2.50GHz
E5-2650
   1: 15860 : Intel Xeon E5-2650 v4 @ 2.20GHz
   2: 14845 : Intel Xeon E5-2650 v3 @ 2.30GHz
   3: 14093 : Intel Xeon E5-2650L v4 @ 1.70GHz
   4: 13390 : Intel Xeon E5-2650L v3 @ 1.80GHz
   5: 13065 : Intel Xeon E5-2650 v2 @ 2.60GHz
   6: 10160 : Intel Xeon E5-2650 @ 2.00GHz
   7:  8676 : Intel Xeon E5-2650L @ 1.80GHz
E5-2660
   1: 17069 : Intel Xeon E5-2660 v4 @ 2.00GHz
   2: 16151 : Intel Xeon E5-2660 v3 @ 2.60GHz
   3: 13309 : Intel Xeon E5-2660 v2 @ 2.20GHz
   4: 11093 : Intel Xeon E5-2660 @ 2.20GHz
E5-2670
   1: 16619 : Intel Xeon E5-2670 v3 @ 2.30GHz
   2: 14994 : Intel Xeon E5-2670 v2 @ 2.50GHz
   3: 12184 : Intel Xeon E5-2670 @ 2.60GHz
E5-2680
   1: 19867 : Intel Xeon E5-2680 v4 @ 2.40GHz
   2: 18616 : Intel Xeon E5-2680 v3 @ 2.50GHz
   3: 15737 : Intel Xeon E5-2680 v2 @ 2.80GHz
   4: 12638 : Intel Xeon E5-2680 @ 2.70GHz
E5-2687
   1: 19933 : Intel Xeon E5-2687W v4 @ 3.00GHz
   2: 17718 : Intel Xeon E5-2687W v3 @ 3.10GHz
   3: 16487 : Intel Xeon E5-2687W v2 @ 3.40GHz
   4: 14381 : Intel Xeon E5-2687W @ 3.10GHz
E5-2690
   1: 21326 : Intel Xeon E5-2690 v4 @ 2.60GHz
   2: 19281 : Intel Xeon E5-2690 v3 @ 2.60GHz
   3: 16480 : Intel Xeon E5-2690 v2 @ 3.00GHz
   4: 13860 : Intel Xeon E5-2690 @ 2.90GHz

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です