Wir sollten erwägen, die folgenden Variablen zu entfernen:
PS> gv Max*Count
Name Value
---- -----
MaximumAliasCount 4096
MaximumDriveCount 4096
MaximumErrorCount 256
MaximumFunctionCount 4096
MaximumHistoryCount 4096
MaximumVariableCount 4096
Sie schützen den Benutzer nicht wirklich vor irgendetwas (es ist einfach, Speicher auf viele andere Arten zu verbrauchen) und blockieren einige gültige Verwendungen, z. B. wenn Sie> 4096 Funktionen in InitialSessionState
hinzufügen, werden die zusätzlichen Funktionen stillschweigend ausgeführt ignoriert - und es gibt keine gute Möglichkeit, dieses Limit zu erhöhen, bis der Runspace geöffnet ist.
Einverstanden. Ich würde viel lieber einen konsolidierten "Berichts" -Befehl sehen, der mir sagt, wie viele von jedem ich habe (noch besser, wenn er Speicherplatz anzeigen könnte). Für den Fall, dass ich eine Situation debuggen muss, in der zu viel Speicher für / von etwas verwendet wird. Aber auch ohne das wäre es in Ordnung, diese zu entfernen.
Das ist eine sehr gute Idee.
Ich habe einige Zweifel daran, MaximumErrorCount
entfernen. Es ist ganz anders
von den anderen und einigen Grenzen macht Sinn. Es können viele Fehler in sein
manche Fälle. Dies ist schlecht für lang laufende Prozesse. Entwickler müssen behalten
Beachten Sie, dass der Speicher durch Fehler und deren Pflege verloren gehen kann. Warum?
Außerdem, wenn Fehler wirklich gesammelt und analysiert werden müssen, dann Verwendung von
-ErrorVariable
Parameter
$Error
die auch Rauschfehler enthalten können. -ErrorVariable
ist unbegrenzt.
Das Entfernen der max
-Wertvariablen bedeutet nicht, dass die Fehlersammlung nicht immer noch auf eine maximale Größe von 256 begrenzt werden konnte. Ich denke, die Frage in diesem Fall lautet - does anybody ever change (increase) that value
? Ich kann nicht sagen, dass ich das in mehr als 10 Jahren mit PowerShell jemals getan habe.
Hilfreichster Kommentar
Das ist eine sehr gute Idee.
Ich habe einige Zweifel daran,
MaximumErrorCount
entfernen. Es ist ganz andersvon den anderen und einigen Grenzen macht Sinn. Es können viele Fehler in sein
manche Fälle. Dies ist schlecht für lang laufende Prozesse. Entwickler müssen behalten
Beachten Sie, dass der Speicher durch Fehler und deren Pflege verloren gehen kann. Warum?
Außerdem, wenn Fehler wirklich gesammelt und analysiert werden müssen, dann Verwendung von
-ErrorVariable
Parameter$Error
die auch Rauschfehler enthalten können.-ErrorVariable
ist unbegrenzt.