[New-bugs-announce] [issue40314] python code order of magnitude faster than equivalent CPython code for simple import statement
deekay
report at bugs.python.org
Fri Apr 17 18:35:24 EDT 2020
New submission from deekay <dee2thekay42 at gmail.com>:
I'm baffled by the performance difference of the following two semantically equivalent(?) programs.
Python:
#test.py
import time
starttime=time.time()
import tensorflow
print(f"Import took: {time.time() - starttime}")
vs C using CPython
//test.c
#include <Python.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[])
{
Py_Initialize();
clock_t t = clock();
PyObject* pModule = PyImport_ImportModule("tensorflow");
double time_taken = ((double)clock() - t)/CLOCKS_PER_SEC;
printf("Import took: %f\n", time_taken);
return 0;
}
Now compare the two:
cl.exe /I"C:\Program Files\Python37\include" test.c
link test.obj python37.lib /LIBPATH:"C:\Program Files\Python37\libs"
.\test.exe
> 2020-04-17 13:00:51.598550: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
> 2020-04-17 13:00:51.606296: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
> **Import took: 23.160523891448975**
python test.py
> 2020-04-17 13:01:19.525648: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found
> 2020-04-17 13:01:19.530726: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
> **Import took: 2.3172824382781982**
Not that it should matter much but my tensorflow version is 1.15
Why is the python VM code so much faster than the compiled CPython code?
Does the python vm add some magic that PyImport_ImportModule doesn't?
----------
components: C API
messages: 366683
nosy: deekay
priority: normal
severity: normal
status: open
title: python code order of magnitude faster than equivalent CPython code for simple import statement
versions: Python 3.7
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40314>
_______________________________________
More information about the New-bugs-announce
mailing list