Bash: Performance Tricks: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K (→Synopsis) |
K (→Synopsis) |
||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
Shell-Skripte können im Vergleich zu "echten" Programmen regelrechte | Shell-Skripte können im Vergleich zu "echten" Programmen regelrechte | ||
Performancefallen enthalten, die nicht offensichtlich sind. Diese können | Performancefallen enthalten, die nicht offensichtlich sind. | ||
auf einfachste Weise erheblich "getunt" werden, wobei z.T. | |||
Diese können auf einfachste Weise erheblich "getunt" werden, wobei z.T. | |||
Geschwindigkeit-Steigerung um den Faktor 1000 und mehr möglich sind. | Geschwindigkeit-Steigerung um den Faktor 1000 und mehr möglich sind. | ||
Viele Dinge, die unter Linux "schnell genug" sind, werden unter | |||
Cygwin "zu langsam", was diese Plattform zu einem guten Benchmark macht. | |||
Praxisbeispiele: | Praxisbeispiele: | ||
Zeile 10: | Zeile 13: | ||
* [[SSH-Tunnel#Beispielscript_zur_Automatisierung | unser Tunnelskript ]] | * [[SSH-Tunnel#Beispielscript_zur_Automatisierung | unser Tunnelskript ]] | ||
Die Ursache ist meist der unnötige Aufruf externer Programme | |||
aus dem Skript | aus dem Skript heraus. Abhilfe schaffen einige Tricks, in der | ||
Reihenfolge einfach und effizient zu kompliziert und ineffizient. | |||
<onlyinclude> | |||
# [[Bash-Tricks: Zusammenfassen externer Kommandos|Zusammenfassen von externen Kommandos]]: <s>for i in *; ls $i; done</s> | |||
# [[Bash-Tricks: grep Ersetzen durch =~ | grep Ersetzen durch =~ ]]: <s> ... | grep abc.txt</s> | |||
# [[Bash-Tricks: cat Ersetzen durch Umleitungsoperator| cat Ersetzen durch < ]]: <s>cat abc.txt</s> | |||
</onlyinclude> | |||
Aktuelle Version vom 13. Januar 2010, 13:36 Uhr
Synopsis
Shell-Skripte können im Vergleich zu "echten" Programmen regelrechte Performancefallen enthalten, die nicht offensichtlich sind.
Diese können auf einfachste Weise erheblich "getunt" werden, wobei z.T. Geschwindigkeit-Steigerung um den Faktor 1000 und mehr möglich sind. Viele Dinge, die unter Linux "schnell genug" sind, werden unter Cygwin "zu langsam", was diese Plattform zu einem guten Benchmark macht.
Praxisbeispiele:
- unsere Backupsskripts,
- unser Tunnelskript
Die Ursache ist meist der unnötige Aufruf externer Programme aus dem Skript heraus. Abhilfe schaffen einige Tricks, in der Reihenfolge einfach und effizient zu kompliziert und ineffizient.
- Zusammenfassen von externen Kommandos:
for i in *; ls $i; done - grep Ersetzen durch =~ :
... | grep abc.txt - cat Ersetzen durch < :
cat abc.txt