2015-05-21 7 views
7

Sto eseguendo uno script in un notebook ipython (con Chrome) e ho notato che è 11 volte più lento di quello che è se eseguo lo stesso script in Python, utilizzando spyder come IDE. Lo script è piuttosto semplice: è solo un insieme di loop e calcoli su un dataframe panda. Nessuna uscita viene stampata sullo schermo né scritta su file esterni. Mi aspetto che il codice sia rallentato perché non è vettorializzato, apprezzo che Ipython possa comportare qualche overhead, ma 11 volte ...! Riesci a pensare a qualche motivo per cui? Eventuali suggerimenti?notebook ipython 11 volte più lento di python: perché?

Grazie!

+5

downvoting senza commenti è molto utile: grazie mille! –

+1

Come lo cronometrate in entrambi i casi? –

+0

Lo sto programmando con: impor time/start_time = time.time()/trascorso = time.time() - start_time –

risposta

2

Ho provato questo sulla mia macchina, e ho scoperto che ipython era in realtà più veloce.

$ cat ex.py 
import time 
import numpy as np 
now = time.time() #(seconds) 
a = [] 
for j in range(2): 
    for s in range(10): 
    a.append(np.random.random()) 
then = now 
print(time.time() - then) 

$ python ex.py 
0.142902851105 

In [1]: %run ex.py 
0.06136202812194824 

Scommetto che è la parte Chrome della configurazione di ipython a causare il rallentamento.