-
Notifications
You must be signed in to change notification settings - Fork 3
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
Stop using Julia's size classes when using MMTk #31
Conversation
This PR aligns any object size to 16 bytes. As the smallest size class is 8 bytes, we may allocate more memory than before, and could cause slowdown. MMTk assumes the allocation size is a multiple of |
8-byte aligned classes are used for strings: Line 371 in 5c406d9
|
I am actually a bit confused by the comments in the code above ("the 8-byte aligned pools are only used for Strings"). They have 8 bytes aligned pools all the way up to 136 bytes. Does that mean all the objects in that size range are strings? That doesn't sound right. Edit: Nvm. I got it. |
For the current code,
|
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.
LGTM
Can you get performance results for the PR (comparing with |
Yes, I was doing it already, without considering the latest changes, but I'll re-run everything and put the results here once I get them. |
When allocating an object, we are still allocating the number of bytes according to Julia's size classes, which may be an overestimation of the number of bytes an object actually requires. This PR removes this since this is specific to Julia's stock GC. This affects not only allocation itself but needs to be reflected in the `get_current_size` function. Needs to be merged with mmtk/julia#31.
When allocating an object, we are still allocating the number of bytes according to Julia's size classes, which may be an overestimation of the number of bytes an object actually requires. This PR removes this since this is specific to Julia's stock GC. This affects not only allocation itself but needs to be reflected in the `get_current_size` function. Needs to be merged with mmtk/julia#31. (cherry picked from commit efb9e10) # Conflicts: # mmtk/Cargo.toml
Stop using Julia's size classes when using MMTk
…liaLang#51237) Stdlib: NetworkOptions URL: https://github.com/JuliaLang/NetworkOptions.jl.git Stdlib branch: master Julia branch: master Old commit: 976e51a New commit: aab83e5 Julia version: 1.11.0-DEV NetworkOptions version: 1.2.0(Does not match) Bump invoked by: @DilumAluthge Powered by: [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl) Diff: JuliaLang/NetworkOptions.jl@976e51a...aab83e5 ``` $ git log --oneline 976e51a..aab83e5 aab83e5 Reset BUNDLED_KNOWN_HOSTS_FILE in case we serialized a value due to precompilation (mmtk#31) ``` Co-authored-by: Dilum Aluthge <[email protected]>
When allocating an object, we are still allocating the number of bytes according to Julia's size classes, which may be an overestimation of the number of bytes an object actually requires. This PR removes this since this is specific to Julia's stock GC.