tests/internal_bench/class_instance: Benchmark instantiation.

This commit adds tests to benchmark the performance of class instantiation.

Signed-off-by: Anson Mansfield <amansfield@mantaro.com>
This commit is contained in:
Anson Mansfield
2025-08-31 13:20:13 -04:00
committed by Damien George
parent 36ab1c2640
commit 6d09d3e76e
13 changed files with 177 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
import bench
X = object
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,13 @@
import bench
import gc
X = object
def test(num):
for i in range(num // 5):
x = X()
gc.collect()
bench.run(test)

View File

@@ -0,0 +1,13 @@
import bench
class X:
pass
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,13 @@
import bench
class X:
x = 0
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,14 @@
import bench
class X:
def f(self):
pass
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,15 @@
import bench
import gc
class X:
pass
def test(num):
for i in range(num // 5):
x = X()
gc.collect()
bench.run(test)

View File

@@ -0,0 +1,14 @@
import bench
class X:
def __init__(self):
pass
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,14 @@
import bench
class X:
def __init__(self):
return super().__init__()
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,14 @@
import bench
class X:
def __new__(cls):
return super().__new__(cls)
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,14 @@
import bench
class X:
def __del__(self):
pass
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,16 @@
import bench
import gc
class X:
def __del__(self):
pass
def test(num):
for i in range(num // 5):
x = X()
gc.collect()
bench.run(test)

View File

@@ -0,0 +1,13 @@
import bench
class X:
__slots__ = ["x"]
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)

View File

@@ -0,0 +1,13 @@
import bench
class X:
__slots__ = ["a", "b", "c", "d", "x"]
def test(num):
for i in range(num // 5):
x = X()
bench.run(test)