Форум программистов, компьютерный форум, киберфорум
alhaos
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Конвейер ...

Запись от alhaos размещена 26.05.2021 в 07:42
Обновил(-а) alhaos 26.05.2021 в 07:44

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using namespace System.Diagnostics
 
class foo {
    static $conf = @{
        scriptBlocks = [scriptblock[]]@(
            {0..999999 | Where-Object {-not [bool]($_ % 3)} | Measure-Object | ForEach-Object Count},
            {((0..999999).Where{-not [bool]($_ % 3)}).count}
            {((0..999999).Where{$_ % 3 -eq 0}).count}
            {for (($i=0), ($bill=0); $i -le 999999;$i++){if ($i % 3 -eq 0){$bill++}}$bill}
        )
    }
    
    static Measure_ScriptBlock () {
        $stopWatch = [Stopwatch]::new()
        
        (0..([foo]::conf.scriptBlocks.count - 1)).foreach{
            Write-Host "ScriptBlock: #$_ {"
            Write-Host ([foo]::conf.scriptBlocks[$_]) -ForegroundColor DarkYellow
            $stopWatch.Start()
            $scriptBlock = [scriptblock]::Create([foo]::conf.scriptBlocks[$_])
            $result = ($scriptBlock.Invoke())
            $stopWatch.Stop()
            Write-Host "{"
            Write-Host "resutlt: $result" -ForegroundColor DarkGreen
            Write-Host "ElapsedMilliseconds: $($stopWatch.ElapsedMilliseconds)" -ForegroundColor Magenta
            $stopWatch.Reset()
        }
    }
}
 
[foo]::Measure_ScriptBlock()
Код:
ScriptBlock: #0 {
0..999999 | Where-Object {-not [bool]($_ % 3)} | Measure-Object | ForEach-Object Count
{
resutlt: 333334
ElapsedMilliseconds: 13357
ScriptBlock: #1 {
((0..999999).Where{-not [bool]($_ % 3)}).count
{
resutlt: 333334
ElapsedMilliseconds: 3184
ScriptBlock: #2 {
((0..999999).Where{$_ % 3 -eq 0}).count
{
resutlt: 333334
ElapsedMilliseconds: 2436
ScriptBlock: #3 {
for (($i=0), ($bill=0); $i -le 999999;$i++){if ($i % 3 -eq 0){$bill++}}$bill
{
resutlt: 333334
ElapsedMilliseconds: 114
Размещено в just code
Показов 513 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.