none
Frage zur Performance - Ordnerpfade als Variable anlegen oder fest ins Script schreiben? RRS feed

  • Frage

  • Guten Morgen zusammen,

    wie ist das eigentlich mit der Performance in Bezug auf Ordnerpfade und Variablen? Manche legen Variablen an und schreiben dort den Pfad rein, andere wiederum schreiben die Pfade "direkt ins Script". Mit den Variablen spart man einige Zeichen, das Script wird kleiner/kürzer. Müssen die Variablen nicht aber erst vom System umgewandelt/ausgelesen werden und ergibt sich so nicht eine (wahrscheinlich nicht messbarere) Verzögerung des gesamten Scripts?

    Freitag, 18. Oktober 2013 08:12

Antworten

  • Auch wenn du einen Pfad direkt in das Script schreibst, muss dieser Pfad im Speicher abgelegt werden und die Speicherstelle wird dann wieder ausgelesen.

    Eine Variabel ist "nur" der Name mit dem du diese Speicherstelle auslesen kannst.
    Sicher wird etwas Rechenzeit darauf verwendet die Variable in einer Tabelle anzulegen und zu verwalten.
    Auch der Datentyp muss ermittelt und angelegt werden.
    Dies muss PowerShell aber auch ohne eine Variable!
    Ein Performance unterschied sollte dort wirklich nicht messbar sein! Und es lohnt nicht sich darüber Gedanken zumachen denke ich.
    PowerShell ist langsamer als .NET Code, .NET Code ist langsamer als C++ Code, C++ Code ist langsamer als C Code, C Code ist langsamer als Handoptimierter Assembler Code.

    Wenn du solch esoterische fragen stellst, dann Programmier in Assembler ;-))

    Was viel wichtiger ist, ist der Grund warum einige Kluge Leute Ihre Pfade in Variablen ablegen, und warum das wohl besser ist. ;-)
    Weist du warum ?


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)

    Freitag, 18. Oktober 2013 10:18

Alle Antworten

  • Auch wenn du einen Pfad direkt in das Script schreibst, muss dieser Pfad im Speicher abgelegt werden und die Speicherstelle wird dann wieder ausgelesen.

    Eine Variabel ist "nur" der Name mit dem du diese Speicherstelle auslesen kannst.
    Sicher wird etwas Rechenzeit darauf verwendet die Variable in einer Tabelle anzulegen und zu verwalten.
    Auch der Datentyp muss ermittelt und angelegt werden.
    Dies muss PowerShell aber auch ohne eine Variable!
    Ein Performance unterschied sollte dort wirklich nicht messbar sein! Und es lohnt nicht sich darüber Gedanken zumachen denke ich.
    PowerShell ist langsamer als .NET Code, .NET Code ist langsamer als C++ Code, C++ Code ist langsamer als C Code, C Code ist langsamer als Handoptimierter Assembler Code.

    Wenn du solch esoterische fragen stellst, dann Programmier in Assembler ;-))

    Was viel wichtiger ist, ist der Grund warum einige Kluge Leute Ihre Pfade in Variablen ablegen, und warum das wohl besser ist. ;-)
    Weist du warum ?


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)

    Freitag, 18. Oktober 2013 10:18
  • Was viel wichtiger ist, ist der Grund warum einige Kluge Leute Ihre Pfade in Variablen ablegen, und warum das wohl besser ist. ;-)
    Weist du warum ?

    Ich schätze mal, weil man dann nur eine (zentrale) Stelle zum Verwalten aller Pfade im Script benötigt und nicht händisch oder via Suchen&Ersetzen durch das Script muss?
    Freitag, 18. Oktober 2013 10:39
  • Ich schätze mal, weil man dann nur eine (zentrale) Stelle zum Verwalten aller Pfade im Script benötigt und nicht händisch oder via Suchen&Ersetzen durch das Script muss?

    Bingo! du hast 9999 Punkte!

    Ein Punkt fehlt noch.
    Diese zentral (am Anfang des Scriptes) definierten und leicht zu pflegenden Variablen kann man dann genauso leicht in Parameter (mit Voreinstellung) umwandeln.

    So hat man dann ein Script, das auch von außen Parameter empfangen kann.

    Wenn keine Parameter angegeben werden, werden die Voreinstellungen genommen.


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)

    Freitag, 18. Oktober 2013 11:49
  • Guten Morgen,

    danke für die 9999 Punkte. ;) Um den einen letzten Punkt auch noch zu bekommen, werde ich mich mal in das Thema Parameter einlesen. Damit hatte ich bis jetzt noch nie zu tun.

    Montag, 21. Oktober 2013 05:46