ipython notebook 11-mal langsamer als python: warum?

Ich bin ein Skript ausgeführt, in ipython notebook (mit Chrome) und bemerkt, dass es 11-mal langsamer als wenn ich das gleiche Skript in Python, mit spyder als meine IDE.
Das Skript ist Recht einfach: es ist nur eine Reihe von Schleifen und Berechnungen auf ein pandas dataframe. Keine Ausgabe auf dem Bildschirm noch geschrieben zu externen Dateien. Ich erwarte, dass der code slowish, weil es nicht vektorisiert, ich Schätze Ipython kann mit einem gewissen overhead, aber 11 mal... ! Kannst du dir Gründe, warum? Irgendwelche Vorschläge?

Dank!

  • downvoting ohne Kommentarfunktion ist sehr nützlich: ich danke Ihnen so sehr!
  • Wie sind Sie mit dem timing, es ist in beiden Fällen?
  • Ich bin timing mit : s Zeit / start_time = time.time() / verstrichene = Zeit.time() - start_time
  • Und sind die timings reproduzierbar wenn man es mehrmals in beide? IPython ist wirklich nur mit den code in Python intern, also die Geschwindigkeit, sollte es nicht anders sein.
  • Ja, ich habe versucht, millionenfach und die timings sind die gleichen
  • Ist es definitiv das gleiche Python-interpreter ausgeführt werden? Blick auf sys.executable zu überprüfen? Und Sie haben definitiv die exakt gleichen Daten? Sorry, wenn dieser sound wie dumme Fragen, aber ich kann wirklich nicht denken, warum-code ausgeführt würde, anders als in IPython.
  • Ja, gleiche sys.ausführbare Datei in beiden Fällen. Der code ist ein (sehr unoptimised) - Schleife iteriert über bestimmte Elemente eines pandas dataframe, um einige Berechnungen durchzuführen. Ich könnte optimieren es durch die Berechnung einige Felder mit pandas.Zusammenführen, wie ein sql-join, und vielleicht mit Numba, aber das ist nicht der Punkt: warum Ipython ist so viel langsamer sein soll ist mir schleierhaft
  • Ist der code etwas, das Sie teilen können, damit wir versuchen können, um es zu reproduzieren? Oder kann Sie erzeugen ein minimal-Beispiel, das zeigt, das problem?
  • Es ist wahrscheinlich, Chrom
  • Ich habe bemerkt seit dem vergangenen Jahr, die python-3-code auf jeder beliebigen version von Jupyter läuft von Anaconda Navigator in firefox, wird sich in 5 Sekunden für eine einfache print("Hallo Welt")

Schreibe einen Kommentar