summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/bench.py
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/bench.py')
-rw-r--r--vendor/github.com/bytedance/sonic/bench.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/vendor/github.com/bytedance/sonic/bench.py b/vendor/github.com/bytedance/sonic/bench.py
deleted file mode 100644
index 1d4c35739..000000000
--- a/vendor/github.com/bytedance/sonic/bench.py
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/usr/bin/env python3
-
-# Copyright 2022 ByteDance Inc.
-#
-# 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.
-
-import tempfile
-import os
-import subprocess
-import argparse
-
-gbench_prefix = "SONIC_NO_ASYNC_GC=1 go test -benchmem -run=none "
-
-def run(cmd):
- print(cmd)
- if os.system(cmd):
- print ("Failed to run cmd: %s"%(cmd))
- exit(1)
-
-def run_s(cmd):
- print (cmd)
- try:
- res = os.popen(cmd)
- except subprocess.CalledProcessError as e:
- if e.returncode:
- print (e.output)
- exit(1)
- return res.read()
-
-def run_r(cmd):
- print (cmd)
- try:
- cmds = cmd.split(' ')
- data = subprocess.check_output(cmds, stderr=subprocess.STDOUT)
- except subprocess.CalledProcessError as e:
- if e.returncode:
- print (e.output)
- exit(1)
- return data.decode("utf-8")
-
-def compare(args):
- # detech current branch.
- # result = run_r("git branch")
- current_branch = run_s("git status | head -n1 | sed 's/On branch //'")
- # for br in result.split('\n'):
- # if br.startswith("* "):
- # current_branch = br.lstrip('* ')
- # break
-
- if not current_branch:
- print ("Failed to detech current branch")
- return None
-
- # get the current diff
- (fd, diff) = tempfile.mkstemp()
- run("git diff > %s"%diff)
-
- # early return if currrent is main branch.
- print ("Current branch: %s"%(current_branch))
- if current_branch == "main":
- print ("Cannot compare at the main branch.Please build a new branch")
- return None
-
- # benchmark current branch
- (fd, target) = tempfile.mkstemp(".target.txt")
- run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, args, target))
-
- # trying to switch to the latest main branch
- run("git checkout -- .")
- if current_branch != "main":
- run("git checkout main")
- run("git pull --allow-unrelated-histories origin main")
-
- # benchmark main branch
- (fd, main) = tempfile.mkstemp(".main.txt")
- run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, args, main))
-
- # diff the result
- # benchstat = "go get golang.org/x/perf/cmd/benchstat && go install golang.org/x/perf/cmd/benchstat"
- run( "benchstat -sort=delta %s %s"%(main, target))
- run("git checkout -- .")
-
- # restore branch
- if current_branch != "main":
- run("git checkout %s"%(current_branch))
- run("patch -p1 < %s" % (diff))
- return target
-
-def main():
- argparser = argparse.ArgumentParser(description='Tools to test the performance. Example: ./bench.py -b Decoder_Generic_Sonic -c')
- argparser.add_argument('-b', '--bench', dest='filter', required=False,
- help='Specify the filter for golang benchmark')
- argparser.add_argument('-c', '--compare', dest='compare', action='store_true', required=False,
- help='Compare with the main benchmarking')
- argparser.add_argument('-t', '--times', dest='times', required=False,
- help='benchmark the times')
- argparser.add_argument('-r', '--repeat_times', dest='count', required=False,
- help='benchmark the count')
- args = argparser.parse_args()
-
- if args.filter:
- gbench_args = "-bench=%s"%(args.filter)
- else:
- gbench_args = "-bench=."
-
- if args.times:
- gbench_args += " -benchtime=%s"%(args.times)
-
- if args.count:
- gbench_args += " -count=%s"%(args.count)
- else:
- gbench_args += " -count=10"
-
- if args.compare:
- target = compare(gbench_args)
- else:
- target = None
-
- if not target:
- (fd, target) = tempfile.mkstemp(".target.txt")
- run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, gbench_args, target))
-
-if __name__ == "__main__":
- main()