PAL v2.0 Alpha1 Release

Nov 2, 2009 at 6:58 AM

I am *very* excited to annound the release of PAL v2.0 Alpha1. It is a PowerShell command line only version for now, so please do not use it unless you are familar with PowerShell and/or command line usage. It has some great features namely all of the data points are plotted on the charts and I have added visual thresholds to the charts. No more COM - pure PowerShell and .NET v3.5. Please let me know your thoughts. You have been a great community to work with!

PAL v2.0 Alpha1 (Technology Preview)

Also, I was recently on the RunAs Radio internet talk show talking about this release of the tool. Keep an eye on for the release of the show.

Thank you everyone for the *great* feedback and assistance!

Nov 4, 2009 at 5:44 AM

So, I’ve been doing perf testing of PAL v2.0 and it’s a lot slower than PAL v1.x when it comes to getting the counter data out of the perfmon log file (CSV). The PowerShell command specifically taking the *long* time is:

$aValue = Import-Csv -Path $global:sPerfLogFilePath | ForEach-Object {$_.$sCounterPath}

The Import-Csv cmdlet (part of PowerShell) is just not as fast as Microsoft Log Parser when getting the same data from the same CSV making PAL v1.x faster in the long run. I don't want to go back to Log Parser since it is COM based and I don't want to take it on as a dependency again.

When I put the CSV file in memory like this:

$MyCsvFile = Import-Csv –path $global:sPerfLogFilePath

Then it bloats memory very badly comsuming so much memory that is bogs down my 4GB x64 laptop. 

Any ideas?


Nov 10, 2009 at 6:56 AM
Edited Nov 10, 2009 at 6:58 AM

I went with parsing the CSV file (converted perfmon log) by hand and I got over 90% improvement in performance!! In one particularly large perfmon log, the counter data was taking about 11 seconds to come back, but now it takes about 20 miliseconds. :-)

The only bad part is that PAL v1.x is still about 3 times faster than PAL v2.0. :-( I just can't seem to beat Log Parser's parsing speeds.

In one particular match up, PAL v1.x processes the log in 15 seconds while PAL v2.0 took 50 seconds. With that said, PAL v2.0 has about 3 times the work because it plots *all* data points now (PAL v1.x only plots average values per time slice) and has visual thresholds in the charts. Also, PAL v1.x will choke on perfmon logs that have too many counters (limitation in Log Parser) while PAL v2.0 will process them regardless making it better for scalability.

I'll post Alpha 2 (the build with the perf change) at the end of this week. I will try post weekly builds as I go.

Thank you for all of the support!

Nov 15, 2009 at 4:53 PM

This release is awesome!

I completely understand the issue with import-csv... this is more common with powershell, where simplicity of syntax often comes as a performance/memory hit. I have seen more cases of that. So you did well writing your own parser.

You also did well going away from logparser and COM stuff - I see the pain there. this .Net Charting stuff you are using produces sweet graphs anyway.

One thing I would advice you to do in the current implementation is not to inline the HTML tags you output... but rather declare them as global variables at the beginning, so that you can easily "restyle" all of your paragraphs/sections and tables consistently later on by just changing a few vars...

Nov 18, 2009 at 1:36 AM

Thanks. I am using a Cascading Style Sheet in the HTML output which to me serves as an easy way to change the style unless I'm missing your point. Thank you.