Performance improvements#1
Open
victor-istomin wants to merge 9 commits into
Open
Conversation
Owner
|
Interesting findings, great thanks. |
|
AFAIK pthread_yield does not exist on MacOSX.
|
Owner
|
Yes, the linux man page says about
Thanks for noticing it. |
Owner
|
I remember about performance improvements made by @victor-istomin and I also made some additional profiling and research. The results are very sad:
I tried to use custom string conversion functions and got a near 5x performance boost! |
393d175 to
f4c22b0
Compare
7831b21 to
e2650b8
Compare
SergiusTheBest
pushed a commit
that referenced
this pull request
Aug 20, 2023
Mutex lock is not necessary when performing line formatting and conversion to UTF-8, so I have moved string manipulation out of the locked scope. This gave more concurrency level and about 3 times more performance on Windows with my test sample.
0687baa to
e5c033e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello,
I've tried this logger and found it pretty light and useful. However, I've found multi-threading concurrency bottleneck, so I'd like to improve this a bit.
Test code sample and benchmarking result will be provided below.
Multithreading test code
Benchmarking results for Linux
Test system is Core i5-4300M with SSD. OS: Windows 10 host, VM: Unubtu Linux 14.04.2.
Original branch
top/iotop results: Disk write speed 4-5 MB/s, CPU 25-30% total (one core at 100%).
Performance improvement branch
top/iotop results: Disk write speed 17-22 MB/s, CPU 100% total
Benchmarking results for Windows are very similar.
Thanks for review and feel free to ask additional questions if needed.
Victor.