diff options
| author | Leandro Pereira <leandro@hardinfo.org> | 2020-05-03 21:50:39 -0700 | 
|---|---|---|
| committer | Leandro Pereira <leandro@hardinfo.org> | 2020-05-09 11:09:03 -0700 | 
| commit | 539a4f019cf68ca93452e1b6d384daf823271d23 (patch) | |
| tree | 6e9e98ff41a08c107f01ab3349a47cdbe7387bdd | |
| parent | f299962b0fa6c35e4074168abdb452cf49f6826c (diff) | |
Cleanups in benchmark-conf-to-json.py
| -rwxr-xr-x | tools/benchmark-conf-to-json.py | 60 | 
1 files changed, 18 insertions, 42 deletions
| diff --git a/tools/benchmark-conf-to-json.py b/tools/benchmark-conf-to-json.py index 928797a1..ce61ee4a 100755 --- a/tools/benchmark-conf-to-json.py +++ b/tools/benchmark-conf-to-json.py @@ -39,60 +39,44 @@ def nice_cpu_name(name,          vendor_intel = re.compile(r'Intel '),          vendor_amd = re.compile(r'AMD '),          integrated_processor = re.compile(r'(Integrated Processor|Processor)', re.I), -        frequency = re.compile(r'(\d+\.?\d+?\+?\s*[GH]z)')): +        frequency = re.compile(r'(\d+\.?\d+?\+?\s*[GH]z)'), +        core_count = re.compile(r'(Dual|Triple|Quad|Six|Eight|Octal|Twelve|Sixteen|\d+)[ -]Core'), +        radeon = re.compile(r'(with )?Radeon'), +        cpu_apu = re.compile(r' [CA]PU'), +        multiple_spaces = re.compile(r'\s\s+')):      # Cleaned-up port of nice_name_x86_cpuid_model_string() from      # deps/sysobj_early/src/nice_name.c      name = name.strip()      name = name.replace("@", "") -    name = trademark_stuff.sub("", name)      # Move vendor to front      match = first_truthy_or_none(vendor_intel.search(name), vendor_amd.search(name))      if match:          span = match.span() -        name = name[span[0]:span[1]] + name[0:span[0]] + name[span[1]:] +        name = name[span[0]:span[1]] + name[:span[0]] + name[span[1]:]      # Remove vendor-specific crud      if name.startswith("AMD"):          name = name.replace("Mobile Technology", "Mobile") -        name = name.replace("with Radeon", "") -        name = name.replace("Radeon", "") +        name = radeon.sub("", name)          if "COMPUTE CORES" in name:              name, _ = name.split(',', 2) -        if "X2" in name: -            name = name.replace("Dual-Core", "") -            name = name.replace("Dual Core", "") -        if "X3" in name: -            name = name.replace("Triple-Core", "") -        if "X4" in name: -            name = name.replace("Quad-Core", "")      elif name.startswith("Cyrix"):          name = name.replace("tm ", "")      else:          name = name.replace("Genuine Intel", "Intel") -    name = name.replace(" CPU", "") -    name = name.replace(" APU", "") -    name = integrated_processor.sub("", name) -    name = frequency.sub("", name) - -    for core_count in ("Dual", "Triple", "Quad", "Six", -                       "Eight", "Octal", "Twelve", "Sixteen", -                       "8", "16", "24", "32", "48", "56", "64"): -        name = name.replace("%s-Core" % core_count, "") -        name = name.replace("%s Core" % core_count, "") - -    while "  " in name: -        name = name.replace("  ", " ") +    for regex in (cpu_apu, integrated_processor, frequency, core_count, trademark_stuff): +        name = regex.sub("", name) +    name = multiple_spaces.sub(" ", name)      return name.strip()  def cleanup_old_style_cpu_name(name): -    for n in ('Intel', 'AMD', 'VIA', 'Cyrix'): -        if n in name: -            return nice_cpu_name(name) +    if any(vendor in name for vendor in ('Intel', 'AMD', 'VIA', 'Cyrix')): +        return nice_cpu_name(name)      return name  def cpu_config_val(config, @@ -103,14 +87,8 @@ def cpu_config_val(config,          value += float(val) * (float(num) if num else 1.0)      return value -def cpu_config_cmp(config1, config2): -    r0 = cpu_config_val(config1) -    r1 = cpu_config_val(config2) -    if r0 == r1: -        return 0 -    if r0 < r1: -        return -1 -    return 1 +def cpu_config_less(config1, config2): +    return cpu_config_val(config1) < cpu_config_val(config2)  def cpu_config_is_close(config1, config2):      r0 = cpu_config_val(config1) @@ -132,7 +110,7 @@ def guess_old_style_cpu_config(cpu_config, num_logical_cpus,          freq *= 1000      candidate_config = "%dx %.2f MHz" % (num_logical_cpus, freq) -    if cpu_config_cmp(cpu_config, candidate_config) == -1 and \ +    if cpu_config_less(cpu_config, candidate_config) and \              not cpu_config_is_close(cpu_config, candidate_config):          return candidate_config @@ -157,7 +135,7 @@ def parse_old_style_cpu_info(cpu_config, cpu_name, bench_name,  def generate_machine_id(bench,          invalid_chars_re = re.compile(r'[^A-Za-z0-9\(\);]')):      mid = "%s;%s;%.2f" % ( -        bench['Board'] if 'Board' in bench else '(Unknown)', +        bench.get('Board', '(Unknown)'),          bench['CpuName'],          cpu_config_val(bench['CpuConfig']),      ) @@ -239,10 +217,8 @@ if __name__ == '__main__':                      'BenchmarkResult': float(values[0]),                  } -                bench.update(parse_old_style_cpu_info( -                    values[1].replace(",", "."), -                    key, -                    section)) +                cpu_info = parse_old_style_cpu_info(values[1].replace(",", "."), key, section) +                bench.update(cpu_info)                  bench['MachineId'] = generate_machine_id(bench)              else:                  raise SyntaxError("unexpected value length: %d (%s)" % (len(values), values)) | 
