<p>Je viens de faire quelques tests des quatre options que je connais.</p>
<pre><code class="lang-auto">Measure-Command {$(1..1000) | Out-Null}
TotalMilliseconds : 76.211
Measure-Command {[Void]$(1..1000)}
TotalMilliseconds : 0.217
Measure-Command {$(1..1000) > $null}
TotalMilliseconds : 0.2478
Measure-Command {$null = $(1..1000)}
TotalMilliseconds : 0.2122
Controle, les temps varient de 0.21 a 0.24
Measure-Command {$(1..1000)}
TotalMilliseconds : 0.2141
</code></pre>
<p>Je vous suggere donc d’utiliser n’importe quoi sauf <code>Out-Null</code> en raison de la surcharge. L’element suivant le plus important, pour moi, serait la lisibilite. J’aime personnellement la redirection vers <code>$null</code> et l’affectation a <code>$null</code>. J’avais l’habitude de preferer la conversion vers <code>[Void]</code>, mais cela peut etre moins comprehensible en parcourant le code ou pour les nouveaux utilisateurs.</p>
<p>Je pense que je prefere legerement la redirection de la sortie vers <code>$null</code>.</p>
<pre><code class="lang-auto">Do-Something > $null
</code></pre>
<p><strong>Edit</strong></p>
<p>Apres le commentaire de stej, j’ai decide de faire d’autres tests avec des pipelines pour mieux isoler la surcharge de la suppression de la sortie.</p>
<p>Voici quelques tests avec un simple pipeline de 1000 objets.</p>
<pre><code class="lang-auto">## Controle Pipeline
Measure-Command {$(1..1000) | ?{$_ -is [int]}}
TotalMilliseconds : 119.3823
Out-Null
Measure-Command {$(1..1000) | ?{$_ -is [int]} | Out-Null}
TotalMilliseconds : 190.2193
Redirection vers $null
Measure-Command {$(1..1000) | ?{$_ -is [int]} > $null}
TotalMilliseconds : 119.7923
</code></pre>
<p>Dans ce cas, <code>Out-Null</code> a environ 60% de surcharge et <code>> $null</code> a environ 0.3% de surcharge.</p>
<p><strong>Addendum 16/10/2017 :</strong> J’avais initialement neglige une autre option avec <code>Out-Null</code>, l’utilisation du parametre <code>-inputObject</code>. En utilisant celui-ci, la surcharge semble disparaitre, cependant la syntaxe est differente :</p>
<pre><code class="lang-auto">Out-Null -inputObject ($(1..1000) | ?{$_ -is [int]})
</code></pre>
<p>Et maintenant quelques tests avec un simple pipeline de 100 objets.</p>
<pre><code class="lang-auto">## Controle Pipeline
Measure-Command {$(1..100) | ?{$_ -is [int]}}
TotalMilliseconds : 12.3566
Out-Null
Measure-Command {$(1..100) | ?{$_ -is [int]} | Out-Null}
TotalMilliseconds : 19.7357
Redirection vers $null
Measure
</code></pre>
<p><em>(Reponse tronquee)</em></p>