Significant reduction in memory footprint. Turns out that
every metric instance being added into a long-running query
burns 12K, and we kept that open for every instance of each
metric - added up to many tens of megabytes. Significantly
refactored the code so that Pdh queries are now short-lived
only, and this resolves the problem.
Defer verification of metrics until first fetch time, which
makes for a much faster startup and reduces immediate memory
allocations made to on-demand stuff only.
Add a high-water allocation mechanism into the metricdesc
table where the values are stored, to bypass frequent use
of realloc in there when in steady state.
Fixed a small memory leak for each instance domain lookup.
No longer install the .exe as well as .dll, only the latter.
No longer install the .c files, not sure how that got there.
A couple of (network) metrics change semantics depending on
which version of Windows is running. Add a mechanism for
handling these, instead of spewing log warnings everywhere.
Improvements to the Windows kernel PMDA.