I’ve been working on a ton of new functionality for this next release of PowerBoots … and now that I’m getting close to ready to release, I thought it was time to work on the performance! Here’s a completely trivial example:
WPK:
Command : $boxes = 1..100 | % { New-TextBox -Text Foo -FontFamily Consolas -On_GotFocus { $_ } }
Duration : 5.25153s
Current PowerBoots 0.2:
Command : $boxes = 1..100 | % { TextBox -Text Foo -FontFamily Consolas -On_GotFocus { $_ } }
Average : 9.40994s
You can see why I thought I should probably work on improving that. It was bad.
PowerBoots 0.3 yesterday:
Command : $boxes = 1..100 | % { TextBox -Text Foo -FontFamily Consolas -On_GotFocus { $_ } }
Duration : 7.43874s
PowerBoots 0.3 tonight:
Command : $boxes = 1..100 | % { TextBox -Text Foo -FontFamily Consolas -On_GotFocus { $_ } }
Duration : 0.34103s
Now, if you’re like me, you’re probably thinking I screwed up something and that TextBox isn’t actually getting created right …

Postscript: ran another test. A little more useful. I have 248 fonts on my system. I have an “Samples” script which shows them all:
New-BootsWindow { ScrollViewer { TextBlock "Loading Fonts..." -FontSize 62 -FontFamily SegoeUI } } -Async -Passthru |
Invoke-BootsWindow -Script {
$This.Content.Content = $(
ForEach( $font in [System.Windows.Media.Fonts]::SystemFontFamilies ) {
TextBlock -FontFamily $font.Source -Text "The Quick Brown Fox Jumps over the Lazy Dog" -FontSize 18; Write-Host $font
}
) | StackPanel
}
Old PowerBoots:
Duration : 19.39894s
New PowerBoots:
Duration : 3.53100s
Woa! That’s some amazing benchmark speeds.
[...] PowerBoots 0.3 – The Faster Edition (Joel Bennett) [...]
Sweet.. so when can we get ahold of this magic?
Go Joel Go!
@Ian you can download the pre-0.3 on powerboots.codeplex.com // source tab.
I’m really excited for this version! Joel does some amazing work for the community.