diff options
| author | George Karpenkov <ekarpenkov@apple.com> | 2018-10-23 01:30:26 +0000 |
|---|---|---|
| committer | George Karpenkov <ekarpenkov@apple.com> | 2018-10-23 01:30:26 +0000 |
| commit | 6a2a197f95ef6b6b3116632e879613a9537e8cc5 (patch) | |
| tree | 126e8ad0ce525448940d2f680f2c30b60e012b71 /clang/utils/analyzer/CmpRuns.py | |
| parent | 8b85b9b6af1bba381aa6378e18d908afb13c2ce4 (diff) | |
| download | bcm5719-llvm-6a2a197f95ef6b6b3116632e879613a9537e8cc5.tar.gz bcm5719-llvm-6a2a197f95ef6b6b3116632e879613a9537e8cc5.zip | |
[analyzer] [testing] Compute data on path length, compute percentiles
Differential Revision: https://reviews.llvm.org/D52844
llvm-svn: 344990
Diffstat (limited to 'clang/utils/analyzer/CmpRuns.py')
| -rwxr-xr-x | clang/utils/analyzer/CmpRuns.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/utils/analyzer/CmpRuns.py b/clang/utils/analyzer/CmpRuns.py index 7c9744727e9..ab8c48b023e 100755 --- a/clang/utils/analyzer/CmpRuns.py +++ b/clang/utils/analyzer/CmpRuns.py @@ -281,9 +281,21 @@ def compareResults(A, B, opts): return res +def computePercentile(l, percentile): + """ + Return computed percentile. + """ + return sorted(l)[int(round(percentile * len(l) + 0.5)) - 1] + def deriveStats(results): # Assume all keys are the same in each statistics bucket. combined_data = defaultdict(list) + + # Collect data on paths length. + for report in results.reports: + for diagnostic in report.diagnostics: + combined_data['PathsLength'].append(diagnostic.getPathLength()) + for stat in results.stats: for key, value in stat.iteritems(): combined_data[key].append(value) @@ -293,6 +305,8 @@ def deriveStats(results): "max": max(values), "min": min(values), "mean": sum(values) / len(values), + "90th %tile": computePercentile(values, 0.9), + "95th %tile": computePercentile(values, 0.95), "median": sorted(values)[len(values) / 2], "total": sum(values) } |

