tests/internal_bench/class_create: Benchmark class creation.

Signed-off-by: Anson Mansfield <amansfield@mantaro.com>
This commit is contained in:
Anson Mansfield 2025-02-26 12:38:08 -05:00 committed by Damien George
parent d5dc554742
commit c3e77ad6db
18 changed files with 253 additions and 0 deletions

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,15 @@
import bench
def test(num):
for i in range(num // 40):
class X:
a = 0
b = 0
c = 0
d = 0
x = 1
bench.run(test)

View file

@ -0,0 +1,20 @@
import bench
class Class:
pass
def test(num):
instance = Class()
for i in range(num // 40):
class X:
a = instance
b = instance
c = instance
d = instance
x = instance
bench.run(test)

View file

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

View file

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

View file

@ -0,0 +1,12 @@
import bench
def test(num):
for i in range(num // 40):
class X:
def __new__(cls):
pass
bench.run(test)

View file

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

View file

@ -0,0 +1,12 @@
import bench
def test(num):
for i in range(num // 40):
class X:
def __getattribute__(self, name):
pass
bench.run(test)

View file

@ -0,0 +1,12 @@
import bench
def test(num):
for i in range(num // 40):
class X:
def __getattr__(self, name):
pass
bench.run(test)

View file

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

View file

@ -0,0 +1,17 @@
import bench
class D:
def __get__(self, instance, owner=None):
pass
def test(num):
descriptor = D()
for i in range(num // 40):
class X:
x = descriptor
bench.run(test)

View file

@ -0,0 +1,14 @@
import bench
def test(num):
class B:
pass
for i in range(num // 40):
class X(B):
pass
bench.run(test)

View file

@ -0,0 +1,16 @@
import bench
def test(num):
class B:
@classmethod
def __init_subclass__(cls):
pass
for i in range(num // 40):
class X(B):
pass
bench.run(test)

View file

@ -0,0 +1,17 @@
import bench
class D:
def __set_name__(self, owner, name):
pass
def test(num):
descriptor = D()
for i in range(num // 40):
class X:
x = descriptor
bench.run(test)

View file

@ -0,0 +1,21 @@
import bench
class D:
def __set_name__(self, owner, name):
pass
def test(num):
descriptor = D()
for i in range(num // 40):
class X:
a = descriptor
b = descriptor
c = descriptor
d = descriptor
x = descriptor
bench.run(test)