2020-05-07 00:28:29 +08:00
|
|
|
# Copyright 2020 Google Inc. All rights reserved.
|
|
|
|
#
|
|
|
|
# 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.
|
2020-06-09 00:29:43 +08:00
|
|
|
"""Example of Python using C++ benchmark framework.
|
|
|
|
|
2020-07-09 16:23:06 +08:00
|
|
|
To run this example, you must first install the `google_benchmark` Python package.
|
2020-06-09 00:29:43 +08:00
|
|
|
|
2020-07-09 16:23:06 +08:00
|
|
|
To install using `setup.py`, download and extract the `google_benchmark` source.
|
2020-06-09 00:29:43 +08:00
|
|
|
In the extracted directory, execute:
|
|
|
|
python setup.py install
|
|
|
|
"""
|
2020-05-07 00:28:29 +08:00
|
|
|
|
2020-07-09 16:23:06 +08:00
|
|
|
import google_benchmark as benchmark
|
2020-05-07 00:28:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
@benchmark.register
|
|
|
|
def empty(state):
|
|
|
|
while state:
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
@benchmark.register
|
|
|
|
def sum_million(state):
|
|
|
|
while state:
|
|
|
|
sum(range(1_000_000))
|
|
|
|
|
|
|
|
|
2020-05-28 16:33:06 +08:00
|
|
|
@benchmark.register
|
|
|
|
def skipped(state):
|
|
|
|
if True: # Test some predicate here.
|
|
|
|
state.skip_with_error('some error')
|
|
|
|
return # NOTE: You must explicitly return, or benchmark will continue.
|
|
|
|
|
|
|
|
... # Benchmark code would be here.
|
|
|
|
|
|
|
|
|
2020-05-07 00:28:29 +08:00
|
|
|
if __name__ == '__main__':
|
|
|
|
benchmark.main()
|