Brython 3.14.0 performance compared to CPython 3.14.0

User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
11/10/2025 14:59

Test Brython
(100 = CPython)
Code
simple assignment71
for i in range(1000000):
    a = 1
augmented assignment59
a = 0
for i in range(1000000):
    a += 1
augmented assignment and list append48
t = []
i = 0
while i < 100000:
    t.append(i)
    i += 1
simple assignment to float100
for i in range(1000000):
    a = 1.0
big integers233
n = 60
for i in range(10000):
    2 ** n
hash string147
for i in range(1000000):
    hash('abcdef')
hash float133
for i in range(1000000):
    hash(86.55)
build dictionary389
for i in range(1000000):
    a = {0: 0, 'a': 'a'}
build dictionary 2157
d = {}
for i in range(100000):
    d[i] = i
set dictionary item205
a = {0: 0}
for i in range(1000000):
    a[0] = i
build set752
for i in range(1000000):
    a = {0, 2.7, "x"}
build list65
for i in range(1000000):
    a = [1, 2, 3]
set list item118
a = [0]
for i in range(1000000):
    a[0] = i
list slice195
a = [1, 2, 3]
for i in range(100000):
    a[:]
integer addition74
a, b, c = 1, 2, 3
for i in range(1000000):
    a + b + c
integer + float67
a, b = 1, 2.0
for i in range(1000000):
    a + b
float addition109
a, b = 1.0, 2.0
for i in range(1000000):
    a + b
string addition49
a, b, c = 'a', 'b', 'c'
for i in range(1000000):
    a + b + c
cast int to string157
for i in range(100000):
    str(i)
create function without arguments74
for i in range(1000000):
    def f():
        pass
create function, single positional argument75
for i in range(1000000):
    def f(x):
        pass
create function, complex arguments55
for i in range(1000000):
    def f(x, y=1, *args, **kw):
        pass
function call254
def f(x):
    return x
for i in range(1000000):
    f(i)
function call, complex arguments343
def f(x, y=0, *args, **kw):
    return x
for i in range(100000):
    f(i, 5, 6, a=8)
create simple class111
for i in range(10000):
    class A:
        pass
create class with init94
for i in range(10000):
    class A:
        def __init__(self, x):
            self.x = x
create instance of simple class565
class A:
    pass

for i in range(1000000):
    A()
create instance of class with init542
class A:
    def __init__(self):
        pass

for i in range(100000):
    A()
call instance method680
class A:
    
    def f(self):
        pass

a = A()
for i in range(100000):
    a.f()
set instance attribute1101
class A:
    pass

a = A()
for i in range(100000):
    a.x = i