-
-
Notifications
You must be signed in to change notification settings - Fork 852
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
Add beeheads stress benchmarks to the repo #1687
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1687 +/- ##
=======================================
Coverage 84.33% 84.33%
=======================================
Files 816 816
Lines 35908 35908
Branches 4173 4173
=======================================
Hits 30282 30282
Misses 4804 4804
Partials 822 822
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report at Codecov.
|
I see what's going wrong with MagicScaler within ImageSharp.Benchmarks, however, no idea what's causing the restore issue:
A few more:
|
Repeating the package versions in the @JimBobSquarePants any idea what's going wrong with the package references? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@antonfirsov Great stuff!!
I've fixed up the includes for you. Just waiting on a stable build (no OOME) for merging.
Question. Isn't it better to save images to the memory stream per 'core' so it won't stress and degrade hdd/ssd? It should also eliminate disk write overhead. |
@br3aker I think the point of these benchmarks is to keep them end-to-end, and as close to the user scenario as possible, so including the physical stream parsing is part of the story. We have other benchmarks where do pre-load stuff. |
Got it, thanks for clarification! |
@JimBobSquarePants thanks for the help! If you have an explanation why did 17b0e3e fix things, I'm curious. Looks like there is major difference in the big picture when it comes to progressive Jpegs. MagicScaler suffers very much from the WIC codec (we actually outperform it!), and ImageSharp's performance gap compared to Vips (= libjpeg-turbo) is also smaller: This is the result of
|
@antonfirsov i did notice you were referencing System.Drawing twice so I remove the older reference and normalised the entries to only include required packages in the individual libraries. Seemed to just work after then. (I wish the UI made these things easier) I think our progressive decoder compares better because we go through the same mcu allocation process as other libraries there and our deficit compared to NetVips will likely be due to color conversion differences since we do more work. I think we’ll get a speed up when we optimised the baseline decoding allocation process. |
Prerequisites
Description
Contributes to #1596.
To simplify benchmarking and memory profiling, I'd like to add @saucecontrol 's modified LoadResizeSave benchmarks to our repo:
I did a significant refactor on the original code:
LoadResizeSaveStressRunner.cs
[ShortRunJob]
and removed FreeImage to reduce the number of total runsMagicScaler issue
When running the MagicScaler benchmark from within BDN, it fails for me with the following stack trace on my machine:EDIT: There is a general issue with NuGet references in ImageSharp.Benchmarks, had to workaround by repeating the version numbers.
Performance report [updated with MagicScaler runs]
Posting the report from my run of
LoadResizeSaveStressBenchmarks
.I used a workstation with 64GB of RAM and a 10-core i9-10900X @ 3.70GHz, # of threads aka.
Environment.ProcessorCount
is 20 on this machine.I benchmarked with
MaxDegreeOfParallelism = 1, 5, 10, 20
, and did a little analysis about scalability.Conclusions