From ccb9a27393022b3e44fa7e073128c752ef119664 Mon Sep 17 00:00:00 2001 From: Peter Schafhalter Date: Fri, 27 Jul 2018 17:49:21 -0700 Subject: [PATCH] Add benchmarks for ray.put (#2489) --- python/benchmarks/benchmark_put.py | 108 +++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 python/benchmarks/benchmark_put.py diff --git a/python/benchmarks/benchmark_put.py b/python/benchmarks/benchmark_put.py new file mode 100644 index 000000000..986a28c89 --- /dev/null +++ b/python/benchmarks/benchmark_put.py @@ -0,0 +1,108 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np + +import ray + + +def setup(): + if not hasattr(setup, "is_initialized"): + ray.init(num_workers=4, num_cpus=4) + setup.is_initialized = True + + +def square(x): + return x * x + + +class Foo(object): + def bar(self): + return 42 + + +class PutBase(object): + def setup(self): + self.object = None + + def time_put(self): + ray.put(self.object) + + def peakmem_put(self): + ray.put(self.object) + + +class PutBoolSuite(PutBase): + def setup(self): + self.object = True + + +class PutIntSuite(PutBase): + def setup(self): + self.object = 42 + + +class PutFloatSuite(PutBase): + def setup(self): + self.object = 4.2 + + +class PutComplexSuite(PutBase): + def setup(self): + self.object = 4 + 2j + + +class PutNoneSuite(PutBase): + def setup(self): + self.object = None + + +class PutStringSuite(PutBase): + def setup(self): + self.object = "forty-two" + + +class PutBytesSuite(PutBase): + def setup(self): + self.object = b"forty-two" + + +class PutListSuite(PutBase): + def setup(self): + self.object = [i for i in range(100)] + + +class PutSetSuite(PutBase): + def setup(self): + self.object = {i for i in range(100)} + + +class PutTupleSuite(PutBase): + def setup(self): + self.object = tuple(range(100)) + + +class PutDictSuite(PutBase): + def setup(self): + self.object = {i: i for i in range(100)} + + +class PutFunctionSuite(PutBase): + def setup(self): + self.object = square + + +class PutClassSuite(PutBase): + def setup(self): + self.object = Foo + + +class PutClassInstanceSuite(PutBase): + def setup(self): + self.object = Foo() + + +class PutArraySuite(PutBase): + def setup(self): + self.object = np.random.random((100, 100, 100))