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,
|
|
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.