4 ms·
Is Python's "values don't change, they get replaced by new ones stored elsewhere" approach what makes it slow? I would like to see some micro-benchmarks which
by mg 3y ago
Is Python's "values don't change, they get replaced by new ones stored elsewhere" approach what makes it slow?
I would like to see some micro-benchmarks which pin down the bottlenecks.
For example, this minimal benchmark with one variable and a few control structures:
x=0
for i in range(int(10e6)):
if i<50: x=x+1
print (x)
Runs 5 times slower here than the same in PHP:
$x=0;
for ($i=0; $i<10e6; $i++)
if ($i<50) $x++;
echo "$x\n";
Tested with:
time python3 loop.py
Which gives me 0.31s
And:
time php loop.php
Which gives me 0.06s
A factor of five seems to be roughly the average when comparing Python to PHP for a bunch of different code constructs I tried.
- snicker7 3y agoYou can’t use time command in this sort of benchmark. You are including start up t times here.
- mg 3y agoStartup times seem to be the same and also negligible: time python3 nothing.py 0.011s time php nothing.php 0.011s
- d-k-bo 3y agoStartup time in Python depends on the program because Python compiles all modules to bytecode before executing them.
- mg 3y agoWhen I up the loop size by a factor of 10, Python takes 10x longer. So I don't think the compile time plays a role here. Similar for the PHP version. python3 loop.py 3.450s time php loop.php 0.469s So PHP is 7x faster for the longer loop.
- igouy 3y agoPHP JIT ?