2017-03-12 1 views
0

Ich verwende ein Python-Skript mit python3 myscript.py auf Ubuntu 16.04. Wird das Skript in den Speicher geladen oder zeilenweise von der Festplatte gelesen und interpretiert? Wenn es nicht auf einmal geladen wird, gibt es eine Möglichkeit zu wissen oder zu kontrollieren, wie groß die Chunks sind, die in den Speicher geladen werden?Wird ein Python-Skript beim Laden in den Speicher geladen?

+0

Könnten Sie bitte zur Frage hinzufügen, welches Problem Sie lösen möchten, indem Sie versuchen zu kontrollieren, wie viel Skript gelesen wird? Ist es aus Angst, nicht genug Speicher zu haben, um das Skript zu lesen? –

+0

Ihr gesamter Code muss in den Speicher geladen werden, das scheint ziemlich offensichtlich zu sein. Von dem, was ich gesehen habe, können Sie Funktionen von der obersten Ebene nicht von oben aufrufen, wo sie definiert wurden, also scheint es, dass die Dinge Zeile für Zeile geladen werden. – byxor

+0

@musically_ut Ich habe mich nur gefragt, wie der Dolmetscher es macht. Es ist nicht aus Angst, die Erinnerung zu verlieren, eher wie Neugier. – NeoTheThird

Antwort

4

Es wird vollständig in den Speicher geladen. Dies muss der Fall sein, da ein Syntaxfehler nahe dem Ende das Programm sofort abbrechen wird. Probieren Sie es aus und sehen Sie.

Es muss keine Möglichkeit geben, dies zu steuern oder zu konfigurieren. Es ist sicherlich ein Implementierungsdetail, das am besten alleine gelassen wird. Wenn Sie ein Problem damit haben (z. B. Ihr Skript ist größer als Ihr RAM), kann es auf andere Weise gelöst werden.

1

Das "Skript", das Sie verwenden, ist nur die menschliche freundliche Darstellung, die Sie sehen. Python öffnet das Skript, liest Zeilen, markiert sie, erstellt einen Parse- und Astbaum und gibt dann einen Bytecode aus, den Sie mit dem Modul dis sehen können.

Das "Skript" ist nicht geladen, es ist Code-Objekt (das Objekt, das die Anweisungen enthält, die für es generiert werden). Es gibt keine direkte Möglichkeit, diesen Prozess zu beeinflussen. Ich habe noch nie von einem Skript gehört, das so groß ist, dass Sie es in Blöcken lesen müssen, ich wäre überrascht, wenn Sie es geschafft hätten.

Verwandte Themen