Powershell: Suporte para $ MaximumFunctionCount e outros limites devem ser removidos

Criado em 10 set. 2016  ·  3Comentários  ·  Fonte: PowerShell/PowerShell

Devemos considerar a remoção das seguintes variáveis:

PS> gv Max*Count

Name                           Value
----                           -----
MaximumAliasCount              4096
MaximumDriveCount              4096
MaximumErrorCount              256
MaximumFunctionCount           4096
MaximumHistoryCount            4096
MaximumVariableCount           4096

Eles realmente não protegem o usuário de nada (é fácil usar a memória de muitas outras maneiras) e bloqueiam alguns usos válidos, por exemplo, se você adicionar> 4096 funções em InitialSessionState , as funções extras serão silenciosas ignorado - e não há uma boa maneira de aumentar esse limite até que o espaço de execução seja aberto.

Issue-Bug WG-Engine WG-Language

Comentários muito úteis

É uma ideia muito boa.

Tenho algumas dúvidas sobre a remoção de MaximumErrorCount . É muito diferente
dos outros e algum limite faz sentido. Pode haver muitos erros em
alguns casos. Isso é ruim para processos de longa execução. Os desenvolvedores devem manter
lembre-se que a memória pode vazar por meio de erros e cuidado com isso. Por quê?

Além disso, quando os erros realmente precisam ser coletados e analisados, o uso de
-ErrorVariable parâmetro
$Error que também pode conter erros de ruído. -ErrorVariable é ilimitado.

Todos 3 comentários

Concordou. Prefiro ver um comando de "relatório" consolidado que me diga quantos de cada eu tenho (ainda melhor se pudesse exibir o footprint da memória). No caso de eu precisar depurar uma situação em que muita memória é usada para / por algo. Mas mesmo sem isso, sim, eu ficaria bem em removê-los.

É uma ideia muito boa.

Tenho algumas dúvidas sobre a remoção de MaximumErrorCount . É muito diferente
dos outros e algum limite faz sentido. Pode haver muitos erros em
alguns casos. Isso é ruim para processos de longa execução. Os desenvolvedores devem manter
lembre-se que a memória pode vazar por meio de erros e cuidado com isso. Por quê?

Além disso, quando os erros realmente precisam ser coletados e analisados, o uso de
-ErrorVariable parâmetro
$Error que também pode conter erros de ruído. -ErrorVariable é ilimitado.

A remoção da variável max value não significa que a coleção de erros ainda não pode ser limitada a um tamanho máximo de 256. Acho que a questão neste caso é - does anybody ever change (increase) that value ? Não posso dizer que já fiz isso em mais de 10 anos de uso do PowerShell.

Esta página foi útil?
0 / 5 - 0 avaliações