fixtures/benchmarks/benches/bindings/run_benchmarks.py (26 lines of code) (raw):
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from benchmarks import *
import time
class TestCallbackObj:
def method(self, a, b, data):
return data.bar
def method_with_void_return(self, a, b, data):
pass
def method_with_no_args_and_void_return(self):
pass
def run_test(self, test_case, count):
data = TestData("StringOne", "StringTwo")
if test_case == TestCase.FUNCTION:
start = time.perf_counter_ns()
for i in range(count):
test_function(10, 20, data)
elif test_case == TestCase.VOID_RETURN:
start = time.perf_counter_ns()
for i in range(count):
test_void_return(10, 20, data)
elif test_case == TestCase.NO_ARGS_VOID_RETURN:
start = time.perf_counter_ns()
for i in range(count):
test_no_args_void_return()
end = time.perf_counter_ns()
return end - start
run_benchmarks("python", TestCallbackObj())