startautomating / benchpress Goto Github PK
View Code? Open in Web Editor NEWEasy Benchmarking with PowerShell
Home Page: https://benchpress.start-automating.com
License: MIT License
Easy Benchmarking with PowerShell
Home Page: https://benchpress.start-automating.com
License: MIT License
Benchpress should use the OutputHelp action to publish docs in CI/CD
Benchmarking information is improved by having some sense of the overall capabilities of the machine. It would be nice to include the clock speed in Benchpress results.
In order to facilitate easy consumption of benchmark metrics, the benchpress action should be able to check in files to the repository it is being used on.
Two files should be generated for each markdown file:
Measure-Benchmark's output could be improved.
Determine if it is faster to use using in a script than to reference the full name.
I'd like to know the fastest way to see if a file exists.
When the Benchpress action encounters a local copy of Benchpress, it should prefer that.
I feel like the default value of 100 is low for some scenarios. Like for example Benchmark Should I Include The System Namespace
.
With the default 100 I get that one is the better.
Technique Time RelativeSpeed Throughput
--------- ---- ------------- ----------
NoSytemNamespace 00:00:00.007584 1x 13184.44/s
SystemNamespaceIncluded 00:00:00.008561 1.13x 11680.06/s
Even your results shows this:
https://github.com/StartAutomating/Benchpress/blob/master/docs/Should_I_Include_The_System_Namespace.benchmark.benchmarkOutput.md
Now if I redo it manually with RepeatCount 1000 then they appear to be the same:
Technique Time RelativeSpeed Throughput
--------- ---- ------------- ----------
SystemNamespaceIncluded 00:00:00.007344 1x 136150.75/s
NoSytemNamespace 00:00:00.007373 1x 135620.8/s
So I think redoing the tests at least in some cases would be benefitial, where each Technique runs for a good few seconds at least.
Benchpress should use the EZOut action to build formatting in CI/CD.
How_Much_Faster_Is_Piping_To_A_ScriptBlock.benchmark checks $PSVersionTable.Platform
if it's windows, but on Powershell 7 at least that value is Win32NT
, not Windows
.
I would rather just check if certutil
is there:
Get-Command -Name 'certutil.exe'
When running Measure-Benchmark in PowerShell 7, the following appears on screen:
cmdlet Get-CimInstance at command pipeline position 1
Supply values for the following parameters:
ClassName:
The problem is on line
Benchpress/Measure-Benchmark.ps1
Line 105 in 8e3b289
-ClassName
parameter.Benchpress should contain a benchmark to compare various command lookup techniques (e.g. Get-Command vs $executionContext)
In order to more effectively render output, benchpress should have Markdown formatters.
Show-Benchmark should default to a markdown file, however, if someone were to write an additional view for Benchmark.OutputFile
, they should be able to use it with -View.
Sometimes you'll want to accumulate results from a pipeline. This can be done with arrays, arraylists, queues, and Tee-Object. It would be nice to settle which is the fastest.
When a Benchmark.clixml file is imported, it is not formatted, because the typename changes to include Deserialized.
What's the speed difference between using a [Hashtable] and an [Ordered] dictionary?
It would be good to have a benchmark that can help determine the fastest way to make random numbers and strings.
This is due to the fact that benchmark files still contain .benchmark
More cosmetic than anything, but perhaps the readme.md
could be updated to include something like:
Install-Module -Name Benchpress
Perhaps? (my immediate reaction on discovering this amazing tool was 'Oh, I wonder if it's on the gallery? or do I have to clone this from here at the moment?')
Happy for it to be dismissed though as it's a very minor thing :)
This looks like very interesting stuff!
My goal is just to run all of the benchmarks in the PowershellPerformance folder. I was following the readme, imported the psd1, and then called: Checkpoint-Benchmark -ModuleName Benchpress
What I get is some results, but a ton of
Resolve-Path : Cannot find path 'C:\PerformanceExperiments\WhatIsTheFastestWayToHashAFile.ps1' because it does not
exist.
At
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Utility\Microsoft.PowerShell.Utility.psm1:110
char:36
when my repo is locally cloned to C:\ldx\Benchpress
I'm also noting that some of the tests don't like to run in a development environment (due to importing the module via name instead of relative path to the test file) so without the module installed via gallery I can't run some of the tests without error. (although I do still get results for those).
Get-Content,
Get-Content -Raw?
IO.File.ReadAllText?
This question should be answered in a benchmark.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.