a91a24254e
pandas.datumFrame have been deprecated for pandas.DataFrame a long time ago. And now don't exists anymore. This change fixes that. Change-Id: I7501d1d2bc8f1ac16ffe72195a4925cf8659775d
80 lines
2.5 KiB
Python
80 lines
2.5 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# Copyright (c) 2014 eNovance
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
#
|
|
# Tools to analyse the result of multiple call of duration_perf_test.py:
|
|
#
|
|
# $ clients=10
|
|
# $ parallel --progress -j $clients python duration_perf_test.py \
|
|
# --result myresults/client{} ::: $(seq 0 $clients)
|
|
# $ python duration_perf_analyse.py myresults
|
|
# * get_measures:
|
|
# Time
|
|
# count 1000.000000
|
|
# mean 0.032090
|
|
# std 0.028287
|
|
# ...
|
|
#
|
|
|
|
|
|
import argparse
|
|
import os
|
|
|
|
import pandas
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('result',
|
|
help=('Path of the results of perf_tool.py.'),
|
|
default='result')
|
|
|
|
data = {
|
|
'get_measures': [],
|
|
'write_measures': [],
|
|
'write_metric': [],
|
|
}
|
|
args = parser.parse_args()
|
|
for root, dirs, files in os.walk(args.result):
|
|
for name in files:
|
|
for method in data:
|
|
if name.endswith('_%s.csv' % method):
|
|
datum = data[method]
|
|
filepath = os.path.join(root, name)
|
|
datum.append(pandas.read_csv(filepath))
|
|
cname = name.replace('_%s.csv' % method, '')
|
|
datum[-1].rename(columns={'Duration': cname}, inplace=True)
|
|
|
|
for method in data:
|
|
merged = pandas.DataFrame(columns=['Index', 'Duration'])
|
|
append = pandas.DataFrame(columns=['Duration'])
|
|
for datum in data[method]:
|
|
datum.dropna(axis=1, inplace=True)
|
|
datum.drop('Count', axis=1, inplace=True)
|
|
merged = merged.merge(datum, on='Index')
|
|
cname = datum.columns.values[1]
|
|
datum.rename(columns={cname: 'Duration'}, inplace=True)
|
|
append = append.append(datum.drop('Index', axis=1))
|
|
merged.to_csv(os.path.join(args.result, '%s_merged.csv' % method),
|
|
index=False)
|
|
print("* %s:" % method)
|
|
print(append.describe())
|
|
print("")
|
|
|
|
if __name__ == '__main__':
|
|
main()
|