[issue40314] python code order of magnitude faster than equivalent CPython code for simple import statement

2020-06-07 Thread STINNER Victor


STINNER Victor  added the comment:

Try maybe PYTHONPROFILEIMPORTTIME=1 env var to get stats on impots.

--
nosy: +vstinner

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue40314] python code order of magnitude faster than equivalent CPython code for simple import statement

2020-06-06 Thread Zachary Ware


Zachary Ware  added the comment:

I've finally had a chance to try to reproduce this myself, and did.  However, a 
subsequent run of `test.exe` showed exactly the same timing as the Python test, 
and even another attempt after removing and re-installing tensorflow showed 
comparable timing to the Python version.  Can you reproduce the slow timing on 
multiple runs?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue40314] python code order of magnitude faster than equivalent CPython code for simple import statement

2020-04-21 Thread deekay


deekay  added the comment:

The times are correct. It's very noticeable even without using a stopwatch. The 
C version actually takes 23 seconds to execute.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue40314] python code order of magnitude faster than equivalent CPython code for simple import statement

2020-04-20 Thread Zachary Ware


Zachary Ware  added the comment:

Are you quite sure you're converting your times correctly, particularly in the 
C code?  The units in the Python version should be seconds; does the C version 
actually take 23 seconds to execute?  What kind of timing do you get if you 
time both programs with the same external program?

--
nosy: +zach.ware

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue40314] python code order of magnitude faster than equivalent CPython code for simple import statement

2020-04-17 Thread Andy Lester


Change by Andy Lester :


--
nosy: +petdance

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue40314] python code order of magnitude faster than equivalent CPython code for simple import statement

2020-04-17 Thread deekay


New submission from deekay :

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 
#include  
#include  
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 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com