From 88a5bfa5f9a880139e521d46f0e2b190913cbc52 Mon Sep 17 00:00:00 2001 From: chen-hang-907 <615884881@qq.com> Date: Mon, 4 Aug 2025 14:56:52 +0800 Subject: [PATCH] Use NumPy to handle missing data --- appStore/cpu2006/views.py | 43 ++-- appStore/cpu2017/views.py | 48 ++-- appStore/fio/views.py | 157 ++++++------ appStore/iozone/views.py | 70 +++--- appStore/jvm2008/views.py | 138 ++++++----- appStore/lmbench/views.py | 224 +++++++++--------- appStore/stream/views.py | 121 +++++----- appStore/unixbench/views.py | 221 ++++++++--------- .../src/components/ComparData.vue | 13 +- .../front-project/src/views/Cpu2006Table.vue | 1 - .../front-project/src/views/Cpu2017Table.vue | 5 +- .../front-project/src/views/FioTable.vue | 1 - .../front-project/src/views/ProjectTable.vue | 194 +++++++++++---- 13 files changed, 615 insertions(+), 621 deletions(-) diff --git a/appStore/cpu2006/views.py b/appStore/cpu2006/views.py index f501b44..76c4141 100644 --- a/appStore/cpu2006/views.py +++ b/appStore/cpu2006/views.py @@ -12,7 +12,7 @@ from rest_framework import status from appStore.cpu2006.models import Cpu2006 from appStore.cpu2006.serializers import Cpu2006Serializer from appStore.utils import constants -from appStore.utils.common import LimsPageSet, json_response, get_error_message, return_time +from appStore.utils.common import json_response, get_error_message from appStore.utils.customer_view import CusModelViewSet @@ -189,19 +189,6 @@ class Cpu2006ViewSet(CusModelViewSet): if i > 2: datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(127): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 else: # 计算平均值 base_single_data_ = serializer_.filter(tuneType='base').filter(thread='单线程') @@ -743,19 +730,19 @@ class Cpu2006ViewSet(CusModelViewSet): datas[125]['column' + str(column_index)] = average_peak_multi_fp_482_sphinx3 datas[126]['column' + str(column_index)] = average_peak_multi_fp_SPECfp_2006 column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(127): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 + if not base_column_index: + # 记录基准数据 + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(127): + if i > 2: + datas[i]['column' + str(column_index)] = \ + "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None + column_index += 1 return datas, title_index, column_index, base_column_index def list(self, request, *args, **kwargs): @@ -907,8 +894,6 @@ class Cpu2006ViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Cpu2006.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) return json_response(datas, status.HTTP_200_OK, '列表') diff --git a/appStore/cpu2017/views.py b/appStore/cpu2017/views.py index 417f4c3..9c0839e 100644 --- a/appStore/cpu2017/views.py +++ b/appStore/cpu2017/views.py @@ -33,7 +33,7 @@ class Cpu2017ViewSet(CusModelViewSet): # 先判断数据的TuneType确定是base还是peak # 在判断数据的thread确定是单线程还是多线程 # 在判断tuneType确定是int还是fp - groups = set([d['mark_name'] for d in serializer.data]) + groups = set([d.mark_name for d in serializer_]) if len(groups) == 1: # 基准数据和对比数据的全部数据 datas[0]['column' + str(column_index)] = 'Cpu2017#' + str(title_index) @@ -165,23 +165,9 @@ class Cpu2017ViewSet(CusModelViewSet): datas[0]['column' + str(column_index)] = title datas[1]['column' + str(column_index)] = '' datas[2]['column' + str(column_index)] = '' - for i in range(103): - if i > 2: - datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] + for i in range(3, 103): + datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(103): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 else: # 计算平均值 base_single_data_ = serializer_.filter(tuneType='base').filter(thread='单线程') @@ -625,19 +611,19 @@ class Cpu2017ViewSet(CusModelViewSet): datas[101]['column' + str(column_index)] = average_peak_multi_fp_rate_554_roms_r datas[102]['column' + str(column_index)] = average_peak_multi_fp_rate_PECrate2017_fp column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(103): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 + if not base_column_index: + # 记录基准数据 + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(103): + if i > 2: + datas[i]['column' + str(column_index)] = \ + "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None + column_index += 1 return datas, title_index, column_index, base_column_index @@ -767,8 +753,6 @@ class Cpu2017ViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Cpu2017.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) return json_response(datas, status.HTTP_200_OK, '列表') diff --git a/appStore/fio/views.py b/appStore/fio/views.py index 934d018..714fa6d 100644 --- a/appStore/fio/views.py +++ b/appStore/fio/views.py @@ -1,22 +1,16 @@ """ * Copyright (c) KylinSoft Co., Ltd. 2024.All rights reserved. - * PilotGo-plugin licensed under the Mulan Permissive Software License, Version 2. + * PilotGo-plugin licensed under the Mulan Permissive Software License, Version 2. * See LICENSE file for more details. * Author: wangqingzheng * Date: Thu Feb 29 16:18:43 2024 +0800 """ -import json -from itertools import groupby - -from django.http import JsonResponse, request -from django.shortcuts import render - # Create your views here. from rest_framework import status from appStore.fio.models import Fio from appStore.fio.serializers import FioSerializer -from appStore.utils.common import LimsPageSet, json_response, get_error_message, return_time +from appStore.utils.common import json_response, get_error_message from appStore.utils import constants from appStore.utils.customer_view import CusModelViewSet @@ -50,39 +44,51 @@ class FioViewSet(CusModelViewSet): def get_data(self, serializer_, datas, title_index, column_index, base_column_index): serializer = self.get_serializer(serializer_, many=True) temp_datas = [] - groups = set([d['mark_name'] for d in serializer.data]) - if len(groups) == 1: - # 基准数据和对比数据的全部数据 - for data in serializer.data: - data = {'rw': data['rw'] + '(' + str(data['bs'] + ')'), - 'bs': data['bs'], - 'io': data['io'], - 'iops': data['iops'], - 'bw': data['bw'], } - temp_datas.append(data) - # 先增加头部的内容 - datas[0]['column' + str(column_index)] = 'Fio#' + str(title_index) - datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] - datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] - # 增加数据部分 - # 先初始化所有数据为空 - # todo 后期查看之前代码是如何实现的 - for i in range(3,len(datas)): - datas[i]['column' + str(column_index)] = None - for value in temp_datas: - # 判断comparsion_datas数据中的rw字段和datas中的rw(column)字段相同,则在datas中增加值 - for index, data_ in enumerate(datas): - if data_['column1'] == value['rw']: - # 在datas中增加对比数据 - datas[index]['column' + str(column_index)] = value['bs'] - datas[index + 1]['column' + str(column_index)] = value['io'] - datas[index + 2]['column' + str(column_index)] = value['iops'] - datas[index + 3]['column' + str(column_index)] = value['bw'] - break - column_index += 1 - title_index += 1 - title = '平均值(基准数据)' if not base_column_index else '平均值' + groups = set([d.mark_name for d in serializer_]) + if not groups or len(groups) == 1: + if not groups: + # 基准数据和对比数据的全部数据 + datas[0]['column' + str(column_index)] = 'Fio#' + str(title_index) + datas[1]['column' + str(column_index)] = None + datas[2]['column' + str(column_index)] = None + # 初始化所有数据为None + for i in range(3, len(datas)): + datas[i]['column' + str(column_index)] = None + column_index += 1 + title_index += 1 + + else: + # 基准数据和对比数据的全部数据 + for data in serializer.data: + data = {'rw': data['rw'] + '(' + str(data['bs'] + ')'), + 'bs': data['bs'], + 'io': data['io'], + 'iops': data['iops'], + 'bw': data['bw'], } + temp_datas.append(data) + # 先增加头部的内容 + datas[0]['column' + str(column_index)] = 'Fio#' + str(title_index) + datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] + datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] + # 增加数据部分 + # 先初始化所有数据为空 + # todo 后期查看之前代码是如何实现的 + for i in range(3,len(datas)): + datas[i]['column' + str(column_index)] = None + for value in temp_datas: + # 判断comparsion_datas数据中的rw字段和datas中的rw(column)字段相同,则在datas中增加值 + for index, data_ in enumerate(datas): + if data_['column1'] == value['rw']: + # 在datas中增加对比数据 + datas[index]['column' + str(column_index)] = value['bs'] + datas[index + 1]['column' + str(column_index)] = value['io'] + datas[index + 2]['column' + str(column_index)] = value['iops'] + datas[index + 3]['column' + str(column_index)] = value['bw'] + break + column_index += 1 + title_index += 1 # 基准数据和对比数据的平均数据 + title = '平均值(基准数据)' if not base_column_index else '平均值' datas[0]['column' + str(column_index)] = title datas[1]['column' + str(column_index)] = '' datas[2]['column' + str(column_index)] = '' @@ -90,26 +96,7 @@ class FioViewSet(CusModelViewSet): if index > 2: datas[index]['column' + str(column_index)] = datas[index]['column' + str(column_index - 1)] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - # 获取到最后一组数据、处理数据 - for i in range(len(datas)): - if i > 2: - value = datas[i]['column' + str(column_index-1)] # 最后一组数据 - base_value = datas[i]['column' + str(base_column_index)] # base数据 - if value is not None and base_value is not None: - value = float("".join(filter(lambda s: s in '0123456789.', value.split('(')[0]))) - base_value = float("".join(filter(lambda s: s in '0123456789.', base_value.split('(')[0]))) - datas[i]['column' + str(column_index)] = "%.2f%%" % ((value - base_value) /base_value * 100) if value is not None and base_value is not None else None - else: - datas[i]['column' + str(column_index)] = None - column_index += 1 + else: # 计算平均值 # 判断bs的大小,方便按照bs的大小分组 @@ -211,37 +198,33 @@ class FioViewSet(CusModelViewSet): datas[index + 3]['column' + str(column_index)] = value['bw'] break column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(3, len(datas)): - datas[i]['column' + str(column_index)] = None - # 获取到最后一组数据、处理数据 - for i in range(len(datas)): - if i > 2: - value = datas[i]['column' + str(column_index - 1)] # 最后一组数据 - base_value = datas[i]['column' + str(base_column_index)] # base数据 - if value is not None and base_value is not None: - value = float("".join(filter(lambda s: s in '0123456789.', value.split('(')[0]))) - base_value = float("".join(filter(lambda s: s in '0123456789.', base_value.split('(')[0]))) - datas[i]['column' + str(column_index)] = "%.2f%%" % ((value - base_value) / base_value * 100) - else: - datas[i]['column' + str(column_index)] = None - column_index += 1 - pass + # 记录基准数据 + if not base_column_index: + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + # 获取到最后一组数据、处理数据 + for i in range(len(datas)): + if i > 2: + value = datas[i]['column' + str(column_index - 1)] # 最后一组数据 + base_value = datas[i]['column' + str(base_column_index)] # base数据 + if value is not None and base_value is not None: + value = float("".join(filter(lambda s: s in '0123456789.', value.split('(')[0]))) + base_value = float("".join(filter(lambda s: s in '0123456789.', base_value.split('(')[0]))) + datas[i]['column' + str(column_index)] = "%.2f%%" % ((value - base_value) / base_value * 100) if value is not None and base_value is not None else None + else: + datas[i]['column' + str(column_index)] = None + column_index += 1 return datas, title_index, column_index, base_column_index def get_left_data(self, serializer_): - serializer = self.get_serializer(serializer_, many=True) datas = [] - groups = set([d['mark_name'] for d in serializer.data]) + groups = set([d.mark_name for d in serializer_]) filter_datas = serializer_.filter(mark_name=list(groups)[0]) for data in filter_datas: data_ = {'rw': data.rw + '(' + str(data.bs + ')'), @@ -284,8 +267,6 @@ class FioViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Fio.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) return json_response(datas, status.HTTP_200_OK, '列表') @@ -317,4 +298,4 @@ class FioViewSet(CusModelViewSet): print(serializer_fio_errors, "fio") return json_response(serializer_fio_errors, status.HTTP_400_BAD_REQUEST, error_message) else: - return \ No newline at end of file + return diff --git a/appStore/iozone/views.py b/appStore/iozone/views.py index 6b0ee30..0689338 100644 --- a/appStore/iozone/views.py +++ b/appStore/iozone/views.py @@ -13,7 +13,7 @@ from rest_framework import status from appStore.iozone.models import Iozone from appStore.iozone.serializers import IozoneSerializer from appStore.utils import constants -from appStore.utils.common import LimsPageSet, json_response, get_error_message, return_time +from appStore.utils.common import json_response, get_error_message from appStore.utils.customer_view import CusModelViewSet @@ -27,9 +27,26 @@ class IozoneViewSet(CusModelViewSet): def get_data(self, serializer_, datas, title_index, column_index, base_column_index): serializer = self.get_serializer(serializer_, many=True) average_datas = [] - groups = set([d['mark_name'] for d in serializer.data]) + groups = set([d.mark_name for d in serializer_]) - if len(groups) == 1: + if not groups: + datas[0]['column' + str(column_index)] = 'Iozone#' + str(title_index) + datas[1]['column' + str(column_index)] = None + datas[2]['column' + str(column_index)] = None + # 初始化所有数据为None + for i in range(3, 21): + datas[i]['column' + str(column_index)] = None + column_index += 1 + title_index += 1 + # 基准数据和对比数据的平均数据 + title = '平均值(基准数据)' if not base_column_index else '平均值' + datas[0]['column' + str(column_index)] = title + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(3, 21): + datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] + column_index += 1 + elif len(groups) == 1: for data in serializer.data: data = {'testcase_name': data['testcase_name'], 'file_size': data['file_size'], @@ -101,28 +118,14 @@ class IozoneViewSet(CusModelViewSet): datas[20]['column' + str(column_index)] = data['random_write_test'] column_index += 1 title_index += 1 - title = '平均值(基准数据)' if not base_column_index else '平均值' # 基准数据和对比数据的平均数据 + title = '平均值(基准数据)' if not base_column_index else '平均值' datas[0]['column' + str(column_index)] = title datas[1]['column' + str(column_index)] = '' datas[2]['column' + str(column_index)] = '' - for i in range(21): - if i > 2: - datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] + for i in range(3, 21): + datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] column_index += 1 - # 记录基准数据 - if not base_column_index: - base_column_index = column_index - 1 - # 对比数据的对比值 - else: - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(21): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 else: # 计算平均值 test_types = set([d['testcase_name'] for d in serializer.data]) @@ -251,19 +254,18 @@ class IozoneViewSet(CusModelViewSet): datas[19]['column' + str(column_index)] = data['rewrite_test'] datas[20]['column' + str(column_index)] = data['random_write_test'] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(21): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 + if not base_column_index: + # 记录基准数据 + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(3, 21): + datas[i]['column' + str(column_index)] = \ + "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None + column_index += 1 return datas, title_index, column_index, base_column_index @@ -313,8 +315,6 @@ class IozoneViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Iozone.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) return json_response(datas, status.HTTP_200_OK, '列表') diff --git a/appStore/jvm2008/views.py b/appStore/jvm2008/views.py index b83254b..f7b75ba 100644 --- a/appStore/jvm2008/views.py +++ b/appStore/jvm2008/views.py @@ -13,7 +13,7 @@ from rest_framework import status from appStore.jvm2008.models import Jvm2008 from appStore.jvm2008.serializers import Jvm2008Serializer from appStore.utils import constants -from appStore.utils.common import LimsPageSet, json_response, get_error_message, return_time +from appStore.utils.common import json_response, get_error_message from appStore.utils.customer_view import CusModelViewSet @@ -27,66 +27,63 @@ class Jvm2008ViewSet(CusModelViewSet): def get_data(self, serializer_, datas, title_index, column_index, base_column_index): serializer = self.get_serializer(serializer_, many=True) # 0-0 或者0-1这样的数据有几组,以此来判断需不需要计算平均值 - groups = set([d['mark_name'] for d in serializer.data]) - if len(groups) == 1: - # 基准数据和对比数据的全部数据 - datas[0]['column' + str(column_index)] = 'Jvm2008#' + str(title_index) - datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] - datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] - # 初始化所有数据为None - for i in range(3, 27): - datas[i]['column' + str(column_index)] = None - for data in serializer.data: - if data['tune_type'] == 'base': - datas[3]['column' + str(column_index)] = data['compiler'] - datas[4]['column' + str(column_index)] = data['compress'] - datas[5]['column' + str(column_index)] = data['crypto'] - datas[6]['column' + str(column_index)] = data['derby'] - datas[7]['column' + str(column_index)] = data['mpegaudio'] - datas[8]['column' + str(column_index)] = data['scimark_large'] - datas[9]['column' + str(column_index)] = data['scimark_small'] - datas[10]['column' + str(column_index)] = data['serial'] - datas[11]['column' + str(column_index)] = data['startup'] - datas[12]['column' + str(column_index)] = data['sunflow'] - datas[13]['column' + str(column_index)] = data['xml'] - datas[14]['column' + str(column_index)] = data['Noncompliant_pomposite_result'] - elif data['tune_type'] == 'peak': - datas[15]['column' + str(column_index)] = data['compiler'] - datas[16]['column' + str(column_index)] = data['compress'] - datas[17]['column' + str(column_index)] = data['crypto'] - datas[18]['column' + str(column_index)] = data['derby'] - datas[19]['column' + str(column_index)] = data['mpegaudio'] - datas[20]['column' + str(column_index)] = data['scimark_large'] - datas[21]['column' + str(column_index)] = data['scimark_small'] - datas[22]['column' + str(column_index)] = data['serial'] - datas[23]['column' + str(column_index)] = data['startup'] - datas[24]['column' + str(column_index)] = data['sunflow'] - datas[25]['column' + str(column_index)] = data['xml'] - datas[26]['column' + str(column_index)] = data['Noncompliant_pomposite_result'] - column_index += 1 - title_index += 1 + groups = set([d.mark_name for d in serializer_]) + if not groups or len(groups) == 1: + if not groups: + # 基准数据和对比数据的全部数据 + datas[0]['column' + str(column_index)] = 'Jvm2008#' + str(title_index) + datas[1]['column' + str(column_index)] = None + datas[2]['column' + str(column_index)] = None + # 初始化所有数据为None + for i in range(3, 27): + datas[i]['column' + str(column_index)] = None + column_index += 1 + title_index += 1 + elif len(groups) == 1: + # 基准数据和对比数据的全部数据 + datas[0]['column' + str(column_index)] = 'Jvm2008#' + str(title_index) + datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] + datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] + # 初始化所有数据为None + for i in range(3, 27): + datas[i]['column' + str(column_index)] = None + for data in serializer.data: + if data['tune_type'] == 'base': + datas[3]['column' + str(column_index)] = data['compiler'] + datas[4]['column' + str(column_index)] = data['compress'] + datas[5]['column' + str(column_index)] = data['crypto'] + datas[6]['column' + str(column_index)] = data['derby'] + datas[7]['column' + str(column_index)] = data['mpegaudio'] + datas[8]['column' + str(column_index)] = data['scimark_large'] + datas[9]['column' + str(column_index)] = data['scimark_small'] + datas[10]['column' + str(column_index)] = data['serial'] + datas[11]['column' + str(column_index)] = data['startup'] + datas[12]['column' + str(column_index)] = data['sunflow'] + datas[13]['column' + str(column_index)] = data['xml'] + datas[14]['column' + str(column_index)] = data['Noncompliant_pomposite_result'] + elif data['tune_type'] == 'peak': + datas[15]['column' + str(column_index)] = data['compiler'] + datas[16]['column' + str(column_index)] = data['compress'] + datas[17]['column' + str(column_index)] = data['crypto'] + datas[18]['column' + str(column_index)] = data['derby'] + datas[19]['column' + str(column_index)] = data['mpegaudio'] + datas[20]['column' + str(column_index)] = data['scimark_large'] + datas[21]['column' + str(column_index)] = data['scimark_small'] + datas[22]['column' + str(column_index)] = data['serial'] + datas[23]['column' + str(column_index)] = data['startup'] + datas[24]['column' + str(column_index)] = data['sunflow'] + datas[25]['column' + str(column_index)] = data['xml'] + datas[26]['column' + str(column_index)] = data['Noncompliant_pomposite_result'] + column_index += 1 + title_index += 1 # 基准数据和对比数据的平均数据 title = '平均值(基准数据)' if not base_column_index else '平均值' datas[0]['column' + str(column_index)] = title datas[1]['column' + str(column_index)] = '' datas[2]['column' + str(column_index)] = '' - for i in range(27): - if i > 2: - datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] + for i in range(3, 27): + datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(27): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)])/ datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 else: # 计算平均值 base_data_ = serializer_.filter(tune_type='base') @@ -213,19 +210,22 @@ class Jvm2008ViewSet(CusModelViewSet): datas[25]['column' + str(column_index)] = average_peak_xml datas[26]['column' + str(column_index)] = average_peak_Noncompliant_pomposite_result column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(27): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 + + if not base_column_index: + # 记录基准数据 + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(3, 27): + datas[i]['column' + str(column_index)] = \ + "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i][ + 'column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if \ + datas[i]['column' + str(column_index - 1)] is not None and datas[i][ + 'column' + str(base_column_index)] is not None else None + column_index += 1 return datas, title_index, column_index, base_column_index def list(self, request, *args, **kwargs): @@ -277,8 +277,6 @@ class Jvm2008ViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Jvm2008.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) diff --git a/appStore/lmbench/views.py b/appStore/lmbench/views.py index 7374113..c954c28 100644 --- a/appStore/lmbench/views.py +++ b/appStore/lmbench/views.py @@ -26,110 +26,104 @@ class LmbenchViewSet(CusModelViewSet): def get_data(self, serializer_, datas, title_index, column_index, base_column_index): serializer = self.get_serializer(serializer_, many=True) - if len(serializer_) == 1: - # 基准数据和对比数据的全部数据 - datas[0]['column' + str(column_index)] = 'Lmbench#' + str(title_index) - datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] - datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] - datas[3]['column' + str(column_index)] = serializer.data[0]['basic_Mhz'] - datas[4]['column' + str(column_index)] = serializer.data[0]['basic_tlb_pages'] - datas[5]['column' + str(column_index)] = serializer.data[0]['basic_cache_line_bytes'] - datas[6]['column' + str(column_index)] = serializer.data[0]['basic_mem_par'] - datas[7]['column' + str(column_index)] = serializer.data[0]['basic_scal_load'] - datas[8]['column' + str(column_index)] = serializer.data[0]['processor_null_call'] - datas[9]['column' + str(column_index)] = serializer.data[0]['processor_null_I_O'] - datas[10]['column' + str(column_index)] = serializer.data[0]['processor_stat'] - datas[11]['column' + str(column_index)] = serializer.data[0]['processor_open_clo'] - datas[12]['column' + str(column_index)] = serializer.data[0]['processor_slct_TCP'] - datas[13]['column' + str(column_index)] = serializer.data[0]['processor_sig_inst'] - datas[14]['column' + str(column_index)] = serializer.data[0]['processor_sig_hndl'] - datas[15]['column' + str(column_index)] = serializer.data[0]['processor_fork_proc'] - datas[16]['column' + str(column_index)] = serializer.data[0]['processor_exec_proc'] - datas[17]['column' + str(column_index)] = serializer.data[0]['processor_sh_proc'] - datas[18]['column' + str(column_index)] = serializer.data[0]['processor_Mhz'] - datas[19]['column' + str(column_index)] = serializer.data[0]['basic_intgr_bit'] - datas[20]['column' + str(column_index)] = serializer.data[0]['basic_intgr_add'] - datas[21]['column' + str(column_index)] = serializer.data[0]['basic_intgr_mul'] - datas[22]['column' + str(column_index)] = serializer.data[0]['basic_intgr_div'] - datas[23]['column' + str(column_index)] = serializer.data[0]['basic_intgr_mod'] - datas[24]['column' + str(column_index)] = serializer.data[0]['basic_int64_bit'] - datas[25]['column' + str(column_index)] = serializer.data[0]['basic_int64_add'] - datas[26]['column' + str(column_index)] = serializer.data[0]['basic_int64_mul'] - datas[27]['column' + str(column_index)] = serializer.data[0]['basic_int64_div'] - datas[28]['column' + str(column_index)] = serializer.data[0]['basic_int64_mod'] - datas[29]['column' + str(column_index)] = serializer.data[0]['basic_float_add'] - datas[30]['column' + str(column_index)] = serializer.data[0]['basic_float_mul'] - datas[31]['column' + str(column_index)] = serializer.data[0]['basic_float_div'] - datas[32]['column' + str(column_index)] = serializer.data[0]['basic_float_bogo'] - datas[33]['column' + str(column_index)] = serializer.data[0]['basic_double_add'] - datas[34]['column' + str(column_index)] = serializer.data[0]['basic_double_mul'] - datas[35]['column' + str(column_index)] = serializer.data[0]['basic_double_div'] - datas[36]['column' + str(column_index)] = serializer.data[0]['basic_double_bogo'] - datas[37]['column' + str(column_index)] = serializer.data[0]['context_2p_0K'] - datas[38]['column' + str(column_index)] = serializer.data[0]['context_2p_16K'] - datas[39]['column' + str(column_index)] = serializer.data[0]['context_2p_64K'] - datas[40]['column' + str(column_index)] = serializer.data[0]['context_8p_16K'] - datas[41]['column' + str(column_index)] = serializer.data[0]['context_8p_64K'] - datas[42]['column' + str(column_index)] = serializer.data[0]['context_16p_16K'] - datas[43]['column' + str(column_index)] = serializer.data[0]['context_16p_64K'] - datas[44]['column' + str(column_index)] = serializer.data[0]['local_2p_0K'] - datas[45]['column' + str(column_index)] = serializer.data[0]['local_Pipe'] - datas[46]['column' + str(column_index)] = serializer.data[0]['local_AF_UNIX'] - datas[47]['column' + str(column_index)] = serializer.data[0]['local_UDP'] - datas[48]['column' + str(column_index)] = serializer.data[0]['local_TCP'] - datas[49]['column' + str(column_index)] = serializer.data[0]['local_TCP_conn'] - datas[50]['column' + str(column_index)] = serializer.data[0]['local_RPC_TCP'] - datas[51]['column' + str(column_index)] = serializer.data[0]['local_RPC_UDP'] - datas[52]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mmap_Latency'] - datas[53]['column' + str(column_index)] = serializer.data[0]['local_bigger_Prot_Fault'] - datas[54]['column' + str(column_index)] = serializer.data[0]['local_bigger_Page_Fault'] - datas[55]['column' + str(column_index)] = serializer.data[0]['local_bigger_100fd_selct'] - datas[56]['column' + str(column_index)] = serializer.data[0]['local_bigger_0K_File_create'] - datas[57]['column' + str(column_index)] = serializer.data[0]['local_bigger_0K_File_delete'] - datas[58]['column' + str(column_index)] = serializer.data[0]['local_bigger_10K_File_create'] - datas[59]['column' + str(column_index)] = serializer.data[0]['local_bigger_10K_File_delete'] - datas[60]['column' + str(column_index)] = serializer.data[0]['local_bigger_Pipe'] - datas[61]['column' + str(column_index)] = serializer.data[0]['local_bigger_AF_UNIX'] - datas[62]['column' + str(column_index)] = serializer.data[0]['local_bigger_TCP'] - datas[63]['column' + str(column_index)] = serializer.data[0]['local_bigger_File_reread'] - datas[64]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mmap_reread'] - datas[65]['column' + str(column_index)] = serializer.data[0]['local_bigger_Bcopy_libc'] - datas[66]['column' + str(column_index)] = serializer.data[0]['local_bigger_Bcopy_hand'] - datas[67]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mem_read'] - datas[68]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mem_write'] - datas[69]['column' + str(column_index)] = serializer.data[0]['memory_Mhz'] - datas[70]['column' + str(column_index)] = serializer.data[0]['memory_L1'] - datas[71]['column' + str(column_index)] = serializer.data[0]['memory_L2'] - datas[72]['column' + str(column_index)] = serializer.data[0]['memory_Main_mem'] - datas[73]['column' + str(column_index)] = serializer.data[0]['memory_Rand_mem'] - title_index += 1 - column_index += 1 + if len(serializer_) <= 1: + if len(serializer_) == 0: + # 基准数据和对比数据的全部数据 + datas[0]['column' + str(column_index)] = 'Lmbench#' + str(title_index) + datas[1]['column' + str(column_index)] = None + datas[2]['column' + str(column_index)] = None + # 初始化所有数据为None + for i in range(3, 74): + datas[i]['column' + str(column_index)] = None + title_index += 1 + column_index += 1 + + else: + # 基准数据和对比数据的全部数据 + datas[0]['column' + str(column_index)] = 'Lmbench#' + str(title_index) + datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] + datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] + datas[3]['column' + str(column_index)] = serializer.data[0]['basic_Mhz'] + datas[4]['column' + str(column_index)] = serializer.data[0]['basic_tlb_pages'] + datas[5]['column' + str(column_index)] = serializer.data[0]['basic_cache_line_bytes'] + datas[6]['column' + str(column_index)] = serializer.data[0]['basic_mem_par'] + datas[7]['column' + str(column_index)] = serializer.data[0]['basic_scal_load'] + datas[8]['column' + str(column_index)] = serializer.data[0]['processor_null_call'] + datas[9]['column' + str(column_index)] = serializer.data[0]['processor_null_I_O'] + datas[10]['column' + str(column_index)] = serializer.data[0]['processor_stat'] + datas[11]['column' + str(column_index)] = serializer.data[0]['processor_open_clo'] + datas[12]['column' + str(column_index)] = serializer.data[0]['processor_slct_TCP'] + datas[13]['column' + str(column_index)] = serializer.data[0]['processor_sig_inst'] + datas[14]['column' + str(column_index)] = serializer.data[0]['processor_sig_hndl'] + datas[15]['column' + str(column_index)] = serializer.data[0]['processor_fork_proc'] + datas[16]['column' + str(column_index)] = serializer.data[0]['processor_exec_proc'] + datas[17]['column' + str(column_index)] = serializer.data[0]['processor_sh_proc'] + datas[18]['column' + str(column_index)] = serializer.data[0]['processor_Mhz'] + datas[19]['column' + str(column_index)] = serializer.data[0]['basic_intgr_bit'] + datas[20]['column' + str(column_index)] = serializer.data[0]['basic_intgr_add'] + datas[21]['column' + str(column_index)] = serializer.data[0]['basic_intgr_mul'] + datas[22]['column' + str(column_index)] = serializer.data[0]['basic_intgr_div'] + datas[23]['column' + str(column_index)] = serializer.data[0]['basic_intgr_mod'] + datas[24]['column' + str(column_index)] = serializer.data[0]['basic_int64_bit'] + datas[25]['column' + str(column_index)] = serializer.data[0]['basic_int64_add'] + datas[26]['column' + str(column_index)] = serializer.data[0]['basic_int64_mul'] + datas[27]['column' + str(column_index)] = serializer.data[0]['basic_int64_div'] + datas[28]['column' + str(column_index)] = serializer.data[0]['basic_int64_mod'] + datas[29]['column' + str(column_index)] = serializer.data[0]['basic_float_add'] + datas[30]['column' + str(column_index)] = serializer.data[0]['basic_float_mul'] + datas[31]['column' + str(column_index)] = serializer.data[0]['basic_float_div'] + datas[32]['column' + str(column_index)] = serializer.data[0]['basic_float_bogo'] + datas[33]['column' + str(column_index)] = serializer.data[0]['basic_double_add'] + datas[34]['column' + str(column_index)] = serializer.data[0]['basic_double_mul'] + datas[35]['column' + str(column_index)] = serializer.data[0]['basic_double_div'] + datas[36]['column' + str(column_index)] = serializer.data[0]['basic_double_bogo'] + datas[37]['column' + str(column_index)] = serializer.data[0]['context_2p_0K'] + datas[38]['column' + str(column_index)] = serializer.data[0]['context_2p_16K'] + datas[39]['column' + str(column_index)] = serializer.data[0]['context_2p_64K'] + datas[40]['column' + str(column_index)] = serializer.data[0]['context_8p_16K'] + datas[41]['column' + str(column_index)] = serializer.data[0]['context_8p_64K'] + datas[42]['column' + str(column_index)] = serializer.data[0]['context_16p_16K'] + datas[43]['column' + str(column_index)] = serializer.data[0]['context_16p_64K'] + datas[44]['column' + str(column_index)] = serializer.data[0]['local_2p_0K'] + datas[45]['column' + str(column_index)] = serializer.data[0]['local_Pipe'] + datas[46]['column' + str(column_index)] = serializer.data[0]['local_AF_UNIX'] + datas[47]['column' + str(column_index)] = serializer.data[0]['local_UDP'] + datas[48]['column' + str(column_index)] = serializer.data[0]['local_TCP'] + datas[49]['column' + str(column_index)] = serializer.data[0]['local_TCP_conn'] + datas[50]['column' + str(column_index)] = serializer.data[0]['local_RPC_TCP'] + datas[51]['column' + str(column_index)] = serializer.data[0]['local_RPC_UDP'] + datas[52]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mmap_Latency'] + datas[53]['column' + str(column_index)] = serializer.data[0]['local_bigger_Prot_Fault'] + datas[54]['column' + str(column_index)] = serializer.data[0]['local_bigger_Page_Fault'] + datas[55]['column' + str(column_index)] = serializer.data[0]['local_bigger_100fd_selct'] + datas[56]['column' + str(column_index)] = serializer.data[0]['local_bigger_0K_File_create'] + datas[57]['column' + str(column_index)] = serializer.data[0]['local_bigger_0K_File_delete'] + datas[58]['column' + str(column_index)] = serializer.data[0]['local_bigger_10K_File_create'] + datas[59]['column' + str(column_index)] = serializer.data[0]['local_bigger_10K_File_delete'] + datas[60]['column' + str(column_index)] = serializer.data[0]['local_bigger_Pipe'] + datas[61]['column' + str(column_index)] = serializer.data[0]['local_bigger_AF_UNIX'] + datas[62]['column' + str(column_index)] = serializer.data[0]['local_bigger_TCP'] + datas[63]['column' + str(column_index)] = serializer.data[0]['local_bigger_File_reread'] + datas[64]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mmap_reread'] + datas[65]['column' + str(column_index)] = serializer.data[0]['local_bigger_Bcopy_libc'] + datas[66]['column' + str(column_index)] = serializer.data[0]['local_bigger_Bcopy_hand'] + datas[67]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mem_read'] + datas[68]['column' + str(column_index)] = serializer.data[0]['local_bigger_Mem_write'] + datas[69]['column' + str(column_index)] = serializer.data[0]['memory_Mhz'] + datas[70]['column' + str(column_index)] = serializer.data[0]['memory_L1'] + datas[71]['column' + str(column_index)] = serializer.data[0]['memory_L2'] + datas[72]['column' + str(column_index)] = serializer.data[0]['memory_Main_mem'] + datas[73]['column' + str(column_index)] = serializer.data[0]['memory_Rand_mem'] + title_index += 1 + column_index += 1 title = '平均值(基准数据)' if not base_column_index else '平均值' # 基准数据和对比数据的平均数据 datas[0]['column' + str(column_index)] = title datas[1]['column' + str(column_index)] = '' datas[2]['column' + str(column_index)] = '' - for i in range(74): - if i > 2: - datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] + for i in range(3, 74): + datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(74): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i][ - 'column' + str(base_column_index)]) / datas[i][ - 'column' + str(base_column_index)] * 100) if datas[i]['column' + str( - column_index - 1)] is not None and datas[i]['column' + str( - base_column_index)] is not None else None - column_index += 1 else: # 计算平均值 basic_Mhz_list = [d.basic_Mhz for d in serializer_ if d.basic_Mhz is not None] @@ -430,19 +424,23 @@ class LmbenchViewSet(CusModelViewSet): datas[72]['column' + str(column_index)] = average_memory_Main_mem datas[73]['column' + str(column_index)] = average_memory_Rand_mem column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(74): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 + + if not base_column_index: + # 记录基准数据 + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(3, 74): + datas[i]['column' + str(column_index)] = \ + "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i][ + 'column' + str(base_column_index)]) / datas[i][ + 'column' + str(base_column_index)] * 100) if datas[i]['column' + str( + column_index - 1)] is not None and datas[i]['column' + str( + base_column_index)] is not None else None + column_index += 1 return datas, title_index, column_index, base_column_index def list(self, request, *args, **kwargs): @@ -543,9 +541,7 @@ class LmbenchViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Lmbench.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') - datas, title_index, column_index, base_column_index = self.get_data(base_queryset, datas, title_index, + datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) return json_response(datas, status.HTTP_200_OK, '列表') diff --git a/appStore/stream/views.py b/appStore/stream/views.py index 4f25bdb..728350a 100644 --- a/appStore/stream/views.py +++ b/appStore/stream/views.py @@ -12,7 +12,7 @@ from rest_framework import status from appStore.stream.models import Stream from appStore.stream.serializers import StreamSerializer from appStore.utils import constants -from appStore.utils.common import LimsPageSet, json_response, get_error_message, return_time +from appStore.utils.common import json_response, get_error_message from appStore.utils.customer_view import CusModelViewSet @@ -23,66 +23,49 @@ class StreamViewSet(CusModelViewSet): queryset = Stream.objects.all().order_by('id') serializer_class = StreamSerializer - def get_data(self, serializer_, datas, title_index, column_index, base_column_index): - serializer = self.get_serializer(serializer_, many=True) - if len(serializer_) == 1: - # 基准数据和对比数据的全部数据 - datas[0]['column' + str(column_index)] = 'Stream#' + str(title_index) - datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] - datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] - datas[3]['column' + str(column_index)] = serializer.data[0]['single_array_size'] - datas[4]['column' + str(column_index)] = serializer.data[0]['single_copy'] - datas[5]['column' + str(column_index)] = serializer.data[0]['single_scale'] - datas[6]['column' + str(column_index)] = serializer.data[0]['single_add'] - datas[7]['column' + str(column_index)] = serializer.data[0]['single_triad'] - datas[8]['column' + str(column_index)] = serializer.data[0]['multi_array_size'] - datas[9]['column' + str(column_index)] = serializer.data[0]['multi_copy'] - datas[10]['column' + str(column_index)] = serializer.data[0]['multi_scale'] - datas[11]['column' + str(column_index)] = serializer.data[0]['multi_add'] - datas[12]['column' + str(column_index)] = serializer.data[0]['multi_triad'] + def get_data(self, serializer, datas, title_index, column_index, base_column_index): + if len(serializer) == 0 or len(serializer) == 1: + if len(serializer) == 0: + datas[0]['column' + str(column_index)] = 'Stream#' + str(title_index) + for i in range(1, 13): + datas[i]['column' + str(column_index)] = None + else: + # 基准数据和对比数据的全部数据 + datas[0]['column' + str(column_index)] = 'Stream#' + str(title_index) + datas[1]['column' + str(column_index)] = serializer.first().execute_cmd + datas[2]['column' + str(column_index)] = serializer.first().modify_parameters + datas[3]['column' + str(column_index)] = serializer.first().single_array_size + datas[4]['column' + str(column_index)] = serializer.first().single_copy + datas[5]['column' + str(column_index)] = serializer.first().single_scale + datas[6]['column' + str(column_index)] = serializer.first().single_add + datas[7]['column' + str(column_index)] = serializer.first().single_triad + datas[8]['column' + str(column_index)] = serializer.first().multi_array_size + datas[9]['column' + str(column_index)] = serializer.first().multi_copy + datas[10]['column' + str(column_index)] = serializer.first().multi_scale + datas[11]['column' + str(column_index)] = serializer.first().multi_add + datas[12]['column' + str(column_index)] = serializer.first().multi_triad column_index += 1 title_index += 1 - # 基准数据和对比数据的平均数据 title = '平均值(基准数据)' if not base_column_index else '平均值' + # 基准数据和对比数据的平均数据 datas[0]['column' + str(column_index)] = title datas[1]['column' + str(column_index)] = '' datas[2]['column' + str(column_index)] = '' - datas[3]['column' + str(column_index)] = serializer.data[0]['single_array_size'] - datas[4]['column' + str(column_index)] = serializer.data[0]['single_copy'] - datas[5]['column' + str(column_index)] = serializer.data[0]['single_scale'] - datas[6]['column' + str(column_index)] = serializer.data[0]['single_add'] - datas[7]['column' + str(column_index)] = serializer.data[0]['single_triad'] - datas[8]['column' + str(column_index)] = serializer.data[0]['multi_array_size'] - datas[9]['column' + str(column_index)] = serializer.data[0]['multi_copy'] - datas[10]['column' + str(column_index)] = serializer.data[0]['multi_scale'] - datas[11]['column' + str(column_index)] = serializer.data[0]['multi_add'] - datas[12]['column' + str(column_index)] = serializer.data[0]['multi_triad'] + for i in range(3, 13): + datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(13): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 else: # 计算平均值 - single_array_size_list = [d.single_array_size for d in serializer_ if d.single_array_size is not None] - single_copy_list = [d.single_copy for d in serializer_ if d.single_copy is not None] - single_scale_list = [d.single_scale for d in serializer_ if d.single_scale is not None] - single_add_list = [d.single_add for d in serializer_ if d.single_add is not None] - single_triad_list = [d.single_triad for d in serializer_ if d.single_triad is not None] - multi_array_size_list = [d.multi_array_size for d in serializer_ if d.multi_array_size is not None] - multi_copy_list = [d.multi_copy for d in serializer_ if d.multi_copy is not None] - multi_scale_list = [d.multi_scale for d in serializer_ if d.multi_scale is not None] - multi_add_list = [d.multi_add for d in serializer_ if d.multi_add is not None] - multi_triad_list = [d.multi_triad for d in serializer_ if d.multi_triad is not None] + single_array_size_list = [d.single_array_size for d in serializer if d.single_array_size is not None] + single_copy_list = [d.single_copy for d in serializer if d.single_copy is not None] + single_scale_list = [d.single_scale for d in serializer if d.single_scale is not None] + single_add_list = [d.single_add for d in serializer if d.single_add is not None] + single_triad_list = [d.single_triad for d in serializer if d.single_triad is not None] + multi_array_size_list = [d.multi_array_size for d in serializer if d.multi_array_size is not None] + multi_copy_list = [d.multi_copy for d in serializer if d.multi_copy is not None] + multi_scale_list = [d.multi_scale for d in serializer if d.multi_scale is not None] + multi_add_list = [d.multi_add for d in serializer if d.multi_add is not None] + multi_triad_list = [d.multi_triad for d in serializer if d.multi_triad is not None] # 计算每个数组的平均值 average_single_array_size = np.mean(single_array_size_list).round(2) if not np.isnan(np.mean(single_array_size_list)) else None @@ -97,7 +80,7 @@ class StreamViewSet(CusModelViewSet): average_multi_triad = np.mean(multi_triad_list).round(2) if not np.isnan(np.mean(multi_triad_list)) else None # 基准数据和对比数据的全部数据 - for data in serializer_: + for data in serializer: datas[0]['column' + str(column_index)] = 'Stream#' + str(title_index) datas[1]['column' + str(column_index)] = data.execute_cmd datas[2]['column' + str(column_index)] = data.modify_parameters @@ -129,19 +112,23 @@ class StreamViewSet(CusModelViewSet): datas[11]['column' + str(column_index)] = average_multi_add datas[12]['column' + str(column_index)] = average_multi_triad column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(13): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 + + if not base_column_index: + # 记录基准数据 + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(3, 13): + datas[i]['column' + str(column_index)] = \ + "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i][ + 'column' + str(base_column_index)]) / datas[i][ + 'column' + str(base_column_index)] * 100) if datas[i]['column' + str( + column_index - 1)] is not None and datas[i]['column' + str( + base_column_index)] is not None else None + column_index += 1 return datas, title_index, column_index, base_column_index def list(self, request, *args, **kwargs): @@ -173,8 +160,6 @@ class StreamViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Stream.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) return json_response(datas, status.HTTP_200_OK, '列表') diff --git a/appStore/unixbench/views.py b/appStore/unixbench/views.py index e60cd3b..f098640 100644 --- a/appStore/unixbench/views.py +++ b/appStore/unixbench/views.py @@ -6,14 +6,13 @@ * Date: Mon Mar 4 10:06:06 2024 +0800 """ # Create your views here. -import math import numpy as np from rest_framework import status from appStore.unixbench.models import Unixbench from appStore.unixbench.serializers import UnixbenchSerializer from appStore.utils import constants -from appStore.utils.common import LimsPageSet, json_response, get_error_message, return_time, list_response +from appStore.utils.common import json_response, get_error_message from appStore.utils.customer_view import CusModelViewSet @@ -27,120 +26,93 @@ class UnixbenchViewSet(CusModelViewSet): def get_data(self, serializer_, datas, title_index, column_index, base_column_index): serializer = self.get_serializer(serializer_, many=True) - # 0-0 或者0-1这样的数据有几组,以此来判断需不需要计算平均值 - groups = set([d['mark_name'] for d in serializer.data]) - if len(groups) == 1: + groups = set([d.mark_name for d in serializer_]) + if not groups or len(groups) == 1: + if not groups: # 基准数据和对比数据的全部数据 - datas[0]['column' + str(column_index)] = 'Unixbench#' + str(title_index) - datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] - datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] - # 初始化所有数据为None - for i in range(3, 29): - datas[i]['column' + str(column_index)] = None - for data in serializer.data: - if data['thread'] == '单线程': - # 单线程数据 - single_Dhrystone = data['Dhrystone'] - single_Double_Precision = data['Double_Precision'] - single_execl_throughput = data['execl_throughput'] - single_file_copy_1024 = data['file_copy_1024'] - single_file_copy_256 = data['file_copy_256'] - single_file_copy_4096 = data['file_copy_4096'] - single_pipe_throughput = data['pipe_throughput'] - single_pipe_based = data['pipe_based'] - single_process_creation = data['process_creation'] - single_shell_scripts_1 = data['shell_scripts_1'] - single_shell_scripts_8 = data['shell_scripts_8'] - single_system_call_overhead = data['system_call_overhead'] - single_index_score = data['index_score'] - if data['thread'] == '多线程': - # 多线程数据 - multi_Dhrystone = data['Dhrystone'] - multi_Double_Precision = data['Double_Precision'] - multi_execl_throughput = data['execl_throughput'] - multi_file_copy_1024 = data['file_copy_1024'] - multi_file_copy_256 = data['file_copy_256'] - multi_file_copy_4096 = data['file_copy_4096'] - multi_pipe_throughput = data['pipe_throughput'] - multi_pipe_based = data['pipe_based'] - multi_process_creation = data['process_creation'] - multi_shell_scripts_1 = data['shell_scripts_1'] - multi_shell_scripts_8 = data['shell_scripts_8'] - multi_system_call_overhead = data['system_call_overhead'] - multi_index_score = data['index_score'] - datas[3]['column' + str(column_index)] = single_Dhrystone - datas[4]['column' + str(column_index)] = single_Double_Precision - datas[5]['column' + str(column_index)] = single_execl_throughput - datas[6]['column' + str(column_index)] = single_file_copy_1024 - datas[7]['column' + str(column_index)] = single_file_copy_256 - datas[8]['column' + str(column_index)] = single_file_copy_4096 - datas[9]['column' + str(column_index)] = single_pipe_throughput - datas[10]['column' + str(column_index)] = single_pipe_based - datas[11]['column' + str(column_index)] = single_process_creation - datas[12]['column' + str(column_index)] = single_shell_scripts_1 - datas[13]['column' + str(column_index)] = single_shell_scripts_8 - datas[14]['column' + str(column_index)] = single_system_call_overhead - datas[15]['column' + str(column_index)] = single_index_score - datas[16]['column' + str(column_index)] = multi_Dhrystone - datas[17]['column' + str(column_index)] = multi_Double_Precision - datas[18]['column' + str(column_index)] = multi_execl_throughput - datas[19]['column' + str(column_index)] = multi_file_copy_1024 - datas[20]['column' + str(column_index)] = multi_file_copy_256 - datas[21]['column' + str(column_index)] = multi_file_copy_4096 - datas[22]['column' + str(column_index)] = multi_pipe_throughput - datas[23]['column' + str(column_index)] = multi_pipe_based - datas[24]['column' + str(column_index)] = multi_process_creation - datas[25]['column' + str(column_index)] = multi_shell_scripts_1 - datas[26]['column' + str(column_index)] = multi_shell_scripts_8 - datas[27]['column' + str(column_index)] = multi_system_call_overhead - datas[28]['column' + str(column_index)] = multi_index_score - column_index += 1 - title_index += 1 + datas[0]['column' + str(column_index)] = 'Unixbench#' + str(title_index) + datas[1]['column' + str(column_index)] = None + datas[2]['column' + str(column_index)] = None + # 初始化所有数据为None + for i in range(3, 29): + datas[i]['column' + str(column_index)] = None + column_index += 1 + title_index += 1 + else: + # 基准数据和对比数据的全部数据 + datas[0]['column' + str(column_index)] = 'Unixbench#' + str(title_index) + datas[1]['column' + str(column_index)] = serializer.data[0]['execute_cmd'] + datas[2]['column' + str(column_index)] = serializer.data[0]['modify_parameters'] + # 初始化所有数据为None + for i in range(3, 29): + datas[i]['column' + str(column_index)] = None + for data in serializer.data: + if data['thread'] == '单线程': + # 单线程数据 + single_Dhrystone = data['Dhrystone'] + single_Double_Precision = data['Double_Precision'] + single_execl_throughput = data['execl_throughput'] + single_file_copy_1024 = data['file_copy_1024'] + single_file_copy_256 = data['file_copy_256'] + single_file_copy_4096 = data['file_copy_4096'] + single_pipe_throughput = data['pipe_throughput'] + single_pipe_based = data['pipe_based'] + single_process_creation = data['process_creation'] + single_shell_scripts_1 = data['shell_scripts_1'] + single_shell_scripts_8 = data['shell_scripts_8'] + single_system_call_overhead = data['system_call_overhead'] + single_index_score = data['index_score'] + if data['thread'] == '多线程': + # 多线程数据 + multi_Dhrystone = data['Dhrystone'] + multi_Double_Precision = data['Double_Precision'] + multi_execl_throughput = data['execl_throughput'] + multi_file_copy_1024 = data['file_copy_1024'] + multi_file_copy_256 = data['file_copy_256'] + multi_file_copy_4096 = data['file_copy_4096'] + multi_pipe_throughput = data['pipe_throughput'] + multi_pipe_based = data['pipe_based'] + multi_process_creation = data['process_creation'] + multi_shell_scripts_1 = data['shell_scripts_1'] + multi_shell_scripts_8 = data['shell_scripts_8'] + multi_system_call_overhead = data['system_call_overhead'] + multi_index_score = data['index_score'] + datas[3]['column' + str(column_index)] = single_Dhrystone + datas[4]['column' + str(column_index)] = single_Double_Precision + datas[5]['column' + str(column_index)] = single_execl_throughput + datas[6]['column' + str(column_index)] = single_file_copy_1024 + datas[7]['column' + str(column_index)] = single_file_copy_256 + datas[8]['column' + str(column_index)] = single_file_copy_4096 + datas[9]['column' + str(column_index)] = single_pipe_throughput + datas[10]['column' + str(column_index)] = single_pipe_based + datas[11]['column' + str(column_index)] = single_process_creation + datas[12]['column' + str(column_index)] = single_shell_scripts_1 + datas[13]['column' + str(column_index)] = single_shell_scripts_8 + datas[14]['column' + str(column_index)] = single_system_call_overhead + datas[15]['column' + str(column_index)] = single_index_score + datas[16]['column' + str(column_index)] = multi_Dhrystone + datas[17]['column' + str(column_index)] = multi_Double_Precision + datas[18]['column' + str(column_index)] = multi_execl_throughput + datas[19]['column' + str(column_index)] = multi_file_copy_1024 + datas[20]['column' + str(column_index)] = multi_file_copy_256 + datas[21]['column' + str(column_index)] = multi_file_copy_4096 + datas[22]['column' + str(column_index)] = multi_pipe_throughput + datas[23]['column' + str(column_index)] = multi_pipe_based + datas[24]['column' + str(column_index)] = multi_process_creation + datas[25]['column' + str(column_index)] = multi_shell_scripts_1 + datas[26]['column' + str(column_index)] = multi_shell_scripts_8 + datas[27]['column' + str(column_index)] = multi_system_call_overhead + datas[28]['column' + str(column_index)] = multi_index_score + column_index += 1 + title_index += 1 title = '平均值(基准数据)' if not base_column_index else '平均值' # 基准数据和对比数据的平均数据 datas[0]['column' + str(column_index)] = title datas[1]['column' + str(column_index)] = '' datas[2]['column' + str(column_index)] = '' - datas[3]['column' + str(column_index)] = single_Dhrystone - datas[4]['column' + str(column_index)] = single_Double_Precision - datas[5]['column' + str(column_index)] = single_execl_throughput - datas[6]['column' + str(column_index)] = single_file_copy_1024 - datas[7]['column' + str(column_index)] = single_file_copy_256 - datas[8]['column' + str(column_index)] = single_file_copy_4096 - datas[9]['column' + str(column_index)] = single_pipe_throughput - datas[10]['column' + str(column_index)] = single_pipe_based - datas[11]['column' + str(column_index)] = single_process_creation - datas[12]['column' + str(column_index)] = single_shell_scripts_1 - datas[13]['column' + str(column_index)] = single_shell_scripts_8 - datas[14]['column' + str(column_index)] = single_system_call_overhead - datas[15]['column' + str(column_index)] = single_index_score - datas[16]['column' + str(column_index)] = multi_Dhrystone - datas[17]['column' + str(column_index)] = multi_Double_Precision - datas[18]['column' + str(column_index)] = multi_execl_throughput - datas[19]['column' + str(column_index)] = multi_file_copy_1024 - datas[20]['column' + str(column_index)] = multi_file_copy_256 - datas[21]['column' + str(column_index)] = multi_file_copy_4096 - datas[22]['column' + str(column_index)] = multi_pipe_throughput - datas[23]['column' + str(column_index)] = multi_pipe_based - datas[24]['column' + str(column_index)] = multi_process_creation - datas[25]['column' + str(column_index)] = multi_shell_scripts_1 - datas[26]['column' + str(column_index)] = multi_shell_scripts_8 - datas[27]['column' + str(column_index)] = multi_system_call_overhead - datas[28]['column' + str(column_index)] = multi_index_score + for i in range(3, 29): + datas[i]['column' + str(column_index)] = datas[i]['column' + str(column_index - 1)] column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(29): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 else: # 数据分组 single_data_ = serializer_.filter(thread='单线程') @@ -304,19 +276,22 @@ class UnixbenchViewSet(CusModelViewSet): datas[27]['column' + str(column_index)] = average_multi_system_call_overhead datas[28]['column' + str(column_index)] = average_multi_index_score column_index += 1 - if not base_column_index: - # 记录基准数据 - base_column_index = column_index - 1 - else: - # 对比数据的对比值 - datas[0]['column' + str(column_index)] = '对比值' - datas[1]['column' + str(column_index)] = '' - datas[2]['column' + str(column_index)] = '' - for i in range(29): - if i > 2: - datas[i]['column' + str(column_index)] = \ - "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i]['column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if datas[i]['column' + str(column_index - 1)] is not None and datas[i]['column' + str(base_column_index)] is not None else None - column_index += 1 + + if not base_column_index: + # 记录基准数据 + base_column_index = column_index - 1 + else: + # 对比数据的对比值 + datas[0]['column' + str(column_index)] = '对比值' + datas[1]['column' + str(column_index)] = '' + datas[2]['column' + str(column_index)] = '' + for i in range(3, 29): + datas[i]['column' + str(column_index)] = \ + "%.2f%%" % ((datas[i]['column' + str(column_index - 1)] - datas[i][ + 'column' + str(base_column_index)]) / datas[i]['column' + str(base_column_index)] * 100) if \ + datas[i]['column' + str(column_index - 1)] is not None and datas[i][ + 'column' + str(base_column_index)] is not None else None + column_index += 1 return datas, title_index, column_index, base_column_index def list(self, request, *args, **kwargs): @@ -373,8 +348,6 @@ class UnixbenchViewSet(CusModelViewSet): # 处理对比数据 for comparativeId in comparsionIds: comparsion_queryset = Unixbench.objects.filter(env_id=comparativeId).all() - if not comparsion_queryset: - return json_response({}, status.HTTP_200_OK, '列表') datas, title_index, column_index, base_column_index = self.get_data(comparsion_queryset, datas, title_index, column_index, base_column_index) return json_response(datas, status.HTTP_200_OK, '列表') diff --git a/templates/front-project/src/components/ComparData.vue b/templates/front-project/src/components/ComparData.vue index e7c7ae4..031295b 100644 --- a/templates/front-project/src/components/ComparData.vue +++ b/templates/front-project/src/components/ComparData.vue @@ -44,14 +44,13 @@ export default { }, created() { axios.get('/api/' + this.dataName + '_data' + '/?env_id=' + this.baseId + '&index=' + this.titleIndex) - // axios.get('/api/' + this.dataName + '_data' + '/?env_id=' + this.baseId) .then((response) => { - this.comparDatas = response.data.data - this.numColumns = Object.keys(this.comparDatas[0]).length - const titleIndex_ = this.titleIndex + this.numColumns - 1 - this.$emit('data-loaded', this.baseId, titleIndex_, this.comparDatas) - this.isDataLoaded = true - }) + this.comparDatas = response.data.data + this.numColumns = Object.keys(this.comparDatas[0]).length + const titleIndex_ = this.titleIndex + this.numColumns -1 + this.$emit('data-loaded', this.baseId,titleIndex_, this.comparDatas) + this.isDataLoaded = true + }) }, } diff --git a/templates/front-project/src/views/Cpu2006Table.vue b/templates/front-project/src/views/Cpu2006Table.vue index f514ba4..1482aea 100644 --- a/templates/front-project/src/views/Cpu2006Table.vue +++ b/templates/front-project/src/views/Cpu2006Table.vue @@ -54,7 +54,6 @@ export default { created() { cpu2006(this.paramsData).then((response) => { this.tableDatas = response.data.data; - console.log(response.data.data) this.numColumns = Object.keys(this.tableDatas[0]).length; this.showAllData = false; // 默认显示平均数据 const keysToHide = Object.keys(this.tableDatas[0]).filter(key => { diff --git a/templates/front-project/src/views/Cpu2017Table.vue b/templates/front-project/src/views/Cpu2017Table.vue index a45c67b..addee83 100644 --- a/templates/front-project/src/views/Cpu2017Table.vue +++ b/templates/front-project/src/views/Cpu2017Table.vue @@ -174,13 +174,12 @@ export default {