-
-
Notifications
You must be signed in to change notification settings - Fork 890
Configurable & optimized memory management #475
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
Merged
Merged
Changes from all commits
Commits
Show all changes
76 commits
Select commit
Hold shift + click to select a range
72772ff
- Make Buffer2D wrap Buffer
rytmis 607e452
- Allocate Buffers from memory manager
rytmis c5eb2cf
- Allocate Buffer2Ds from memory manager
rytmis a73283f
- Add a minimum size threshold for array pool usage
rytmis 9e4e5ab
- Removed a test that doesn't actually test anything any more
rytmis b1a5c71
- Removed PixelDataPool
rytmis 333ce3b
- Oops. Note to self: don't make changes to unsafe
rytmis f675f5c
- Explicitly pass MemoryManager to the places that
rytmis f1412d3
- Use Configuration.Default.MemoryManager in tests
rytmis 2451168
- Code style fixes
rytmis 58330a1
- Removing more usages of ArrayPool
rytmis 58ab4e6
- Remove ArrayPool from Huffman tree
rytmis 9290536
- Use fixed buffers in Huffman table
rytmis 2615556
- Use memory manager in Bytes
rytmis 4e4cdd5
- Removed ArrayPool from WuQuantizer
rytmis cf13ebf
- Optional param -> second method
rytmis 76dc5c2
- Whitespace fix
rytmis 54313e8
- Reduced the threshold for ArrayPoolMemoryManager to 512 bytes
rytmis b23b137
- Oops, neglected to fix this test
rytmis 750af5a
- Removed Configuration.Default.MemoryManager from PixelAccessor
rytmis 7e3cb28
dropping minSizeBytes + fixing tests
antonfirsov 22206f1
maxPoolSizeInBytes parameter + safer indexer for Buffer<T>
antonfirsov 80e5fe3
Merge branch 'master' into feature/memory-manager
antonfirsov af23153
fix build after merge
antonfirsov 7a076de
moving common MemoryManager logic into extension methods
antonfirsov 967098b
Merge remote-tracking branch 'origin/antonfirsov/cover-all-codecs' in…
antonfirsov 3819c75
dropping MemoryManager ctr. argument:
antonfirsov 2ea9e08
introducing FakeBuffer<T> workaround
antonfirsov 29483b3
IManagedByteBuffer
antonfirsov cf96e61
hide Buffer<T>.Array, use IManagedByteBuffer when necessary
antonfirsov e666609
fix regression in GifDecoderCore
antonfirsov 739cec3
clean up Buffer<T> API
antonfirsov 7db4cdc
Hide Buffer<T> indexer + !! WuQuantizer review in comments !!
antonfirsov 58d187f
2 drawing regression test cases for safety
antonfirsov 77e524d
MemoryManager returns IBuffer<T> now
antonfirsov 4e515a8
MemoryManager-s should provide their own IBuffer<T> implementations
antonfirsov f390569
goodbye top-level Buffer<T>!
antonfirsov d6c196b
Buffer2DTests using a mock MemoryManager
antonfirsov f23e849
ArrayPoolMemoryManagerTests
antonfirsov ae52170
Covering ArrayPoolMemoryManager and it's buffer. Took hours, but wort…
antonfirsov fa0ae3c
ArrayPoolMemoryManager uses a different ArrayPool for large buffers +…
antonfirsov 76633c9
allowing bucket sizes to be passed to ArrayPoolMemoryManager
antonfirsov 2fa0994
ArrayPoolMemoryManager factory methods
antonfirsov a85cc51
passing MemoryManager to pixel blenders
antonfirsov 7210a89
Merge remote-tracking branch 'origin/master' into feature/memory-manager
antonfirsov d29ef1a
Super-optimized GenericBlock8x8<T> to replace PixelArea<T> in JpegEnc…
antonfirsov 6e1736d
YCbCrForwardConverter<TPixel> WIP
antonfirsov 6a40926
Merge remote-tracking branch 'origin/antonfirsov/cover-all-codecs' in…
antonfirsov 52c482e
build fix: MakeOpaque()
antonfirsov be325d8
YCbCrForwardConverter<TPixel>
antonfirsov bcd33b6
Encode444 using YCbCrForwardConverter<TPixel>
antonfirsov 62f8ba2
All PixelArea<T> usages in JpegEncoder replaced by GenericBlock8x8<TP…
antonfirsov e64f1d5
fixing StyleCop errors
antonfirsov 2be566b
cleanup
antonfirsov ba5e80f
replaced some of the PixelArea usages in bmp decoder
antonfirsov d1872c5
removed PixelArea<T>!
antonfirsov 65918d1
replaced PixelAccessor<T> with Buffer2D<T> in several processors
antonfirsov 45cca93
PixelAccessor<T> is now a meaningless thin wrapper around Buffer2D<T>
antonfirsov 7b62fbc
do not use Configuration.Default.MemoryManager in AddFrame()
antonfirsov 8d351f3
code analyzers fighting each other
antonfirsov 0684c93
using WeakReference in ArrayPoolMemoryManager.Buffer
antonfirsov eeaa270
tuning ArrayPoolMemoryManager configuration based on benchmark results
antonfirsov e2694d3
tuning ArrayPoolMemoryManager configuration based on benchmark results
antonfirsov 9368d3e
Merge branch 'master' of https://github.com/SixLabors/ImageSharp into…
antonfirsov 110e3c7
build fix after merge
antonfirsov 88be834
removing duplicate reference to SixLabors.Core
antonfirsov 48a3189
SimpleManagedMemoryManager -> SimpleGcMemoryManager
antonfirsov c07cbea
review cleanup
antonfirsov 4d915b6
added comments for the WeakReference stuff
antonfirsov de67364
optimize ResizeProcessor parallel behavior and Span<T> usage
antonfirsov d721138
introducing ParallelFor.WithTemporalBuffer(): common utility for the …
antonfirsov 1b0a2b4
removed Span bottleneck from Block8x8F.CopyTo() + removed unnecessary…
antonfirsov 7d5cea1
Removing all the buffer magic from the Bytes struct. It only made thi…
antonfirsov c314db6
Remove unneeded parameter
JimBobSquarePants 5b9b27c
Temporary Vortex
antonfirsov 55d2184
Merge branch 'feature/memory-manager' of https://github.com/SixLabors…
antonfirsov File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
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
Oops, something went wrong.
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.
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.
Didn't know
Spanhad aFillmethod. Neat!