Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce perfmon memory allocations #5036

Merged
merged 1 commit into from
Aug 29, 2017

Conversation

andrewkroh
Copy link
Member

@andrewkroh andrewkroh commented Aug 28, 2017

In PdhGetFormattedCounterArray the code was allocating memory for bufferSize x sizeof(PdhCounterValueItem), but it only needed to allocate bufferSize. The buffer size is provided by Windows and already accounts for the sizeof PdhCounterValueItem.

Made an improvement to create regexp objects once at startup instead of on every use.

Moved config validation to startup for non-wildcard counter paths. This allows the check to only be performed one time and for any errors to be returned during the config test.

Fixes #5035

In `PdhGetFormattedCounterArray` the code was allocating memory for `bufferSize` x `sizeof(PdhCounterValueItem)`, but it only needed to allocated `bufferSize`. The buffer size is provided by Windows and already accounts for the sizeof PdhCounterValueItem.

Made an improvement to create regexp objects once at startup instead of on every use.

Moved config validation to startup for non-wildcard counter paths. This allows the check to only be performed one time and for any errors to be returned during the config test.

Fixes elastic#5035
@ruflin ruflin merged commit 0fc4dea into elastic:master Aug 29, 2017
@ruflin
Copy link
Contributor

ruflin commented Aug 29, 2017

Nice fix. Merged as Windows build was green. Will this need a backport?

andrewkroh added a commit to andrewkroh/beats that referenced this pull request Aug 29, 2017
In `PdhGetFormattedCounterArray` the code was allocating memory for `bufferSize` x `sizeof(PdhCounterValueItem)`, but it only needed to allocated `bufferSize`. The buffer size is provided by Windows and already accounts for the sizeof PdhCounterValueItem.

Made an improvement to create regexp objects once at startup instead of on every use.

Moved config validation to startup for non-wildcard counter paths. This allows the check to only be performed one time and for any errors to be returned during the config test.

Fixes elastic#5035
(cherry picked from commit 0fc4dea)
tsg pushed a commit that referenced this pull request Aug 29, 2017
In `PdhGetFormattedCounterArray` the code was allocating memory for `bufferSize` x `sizeof(PdhCounterValueItem)`, but it only needed to allocated `bufferSize`. The buffer size is provided by Windows and already accounts for the sizeof PdhCounterValueItem.

Made an improvement to create regexp objects once at startup instead of on every use.

Moved config validation to startup for non-wildcard counter paths. This allows the check to only be performed one time and for any errors to be returned during the config test.

Fixes #5035
(cherry picked from commit 0fc4dea)
@andrewkroh andrewkroh deleted the bugfix/windows-perfmon branch December 14, 2017 21:28
leweafan pushed a commit to leweafan/beats that referenced this pull request Apr 28, 2023
In `PdhGetFormattedCounterArray` the code was allocating memory for `bufferSize` x `sizeof(PdhCounterValueItem)`, but it only needed to allocated `bufferSize`. The buffer size is provided by Windows and already accounts for the sizeof PdhCounterValueItem.

Made an improvement to create regexp objects once at startup instead of on every use.

Moved config validation to startup for non-wildcard counter paths. This allows the check to only be performed one time and for any errors to be returned during the config test.

Fixes elastic#5035
(cherry picked from commit 3931015)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants