Gibt es einen Linux-Befehl, um die Ausführung der Dateien zu beschleunigen?

Gibt es einen Linux-Befehl, um die Ausführung der Dateien zu beschleunigen?

Ich würde gerne wissen, ob es einen Linux-Befehl gibt, um die Perl-Datei schneller auszuführen?

Ich habe den folgenden Befehl verwendet, um die Ausführungszeit zu überprüfen:

time ./rspd.pl

Ausgabe:

1.003u 0.480s 3:34.90 0.6% 0+0k 56+5520io 0pf+0w

Die Ausführung einiger meiner Perl-Skripte dauert sehr lange. Kann ich in solchen Fällen einen anderen Linux-Befehl verwenden, um die Ausführung zu beschleunigen?

Antwort1

Es kommt darauf an.

Generell gilt: Nein. Das ist nicht möglich.

Manchmal ist das jedoch möglich. Nehmen wir beispielsweise an, Sie haben ein Programm, das einige erweiterte Operationen an Zeichenfolgen durchführt und jede Zeile unabhängig ändert. Dann könnten Sie GNU verwenden parallel– das Programm, das für die parallele Ausführung von Programmen entwickelt wurde.

Sie müssen jedoch wissenWasIhr Programm tut und wo der Engpass liegt. Einige Programme teilen sich standardmäßig in kleinere Unterprozesse auf, sodass Sie keine Geschwindigkeitssteigerung erzielen. Einige Programme nutzen die Festplatte stark, und da dies der Engpass ist, würden Sie keine Verbesserung erzielen. Einige Programme haben eine Logik, die nicht auf die aufgeteilten Dateien angewendet werden kann.

GNU Parallel teilt die Datei in kleinere Teile auf und führt das Skript für jeden Teil aus, wobei die Ergebnisse zusammengeführt werden. Das funktioniert gut, wenn Sie etwas wie „ awkdas die erste und zweite Spalte ändert“ ausführen. Das funktioniert nicht so gut, wenn Sie ein Programm ausführen, das zu N wechselt dog, wobei N die Häufigkeit angibt, mit der Sie das Wort dogbisher gesehen haben.

Antwort2

Die einzige Antwort istNEIN. Es gibt keinen solchen allgemeinen Befehl, um eine andere beliebige ausführbare Datei wie Ihr Perl-Skript zu beschleunigen.

Um Ihr rspd.plSystem schneller zu machen, sollten Sie zunächst wissen, was es überhaupt tut. Warum ist es langsam? CPU, RAM, Netzwerk oder Festplatten-E/A? Dies wird als „Profiling“ bezeichnet, siehe beispielsweise https://stackoverflow.com/questions/4371714/wie-erstelle-ich-ein-profil-meiner-perl-programme

Antwort3

NEIN.

Das Beste, was Sie tun können, ist, einen Befehl zu verwenden, um ihn auf verschiedene Threads und damit möglicherweise auf verschiedene Kerne zu verteilen, damit er schneller läuft. Schauen Sie sich beispielsweise Folgendes an:GNU Parallel.

Antwort4

Speichern Sie alle Perl-Bibliotheken im RAM, damit die Ausführung schneller erfolgt, wenn ein Perl-Skript viele davon verwendet.

verwandte Informationen