Just to report back about this feature. I've tried this now with about 5 different apps of various sizes, ranging from 10 requests per second up to 1000 requests per second. Both on web (Puma) and background job (Sidekiq) workloads. C...nateberkopec (Nate Berkopec)
Regarding the interface: ``` ruby GC.disable(major: true) GC.disable(type: :major) ``` Should we consider these additional keyword arguments rather than adding a new method? nateberkopec (Nate Berkopec)
This looks like an oversight to me? I agree with Benoit - showing object_id everywhere we used to show address seems the best way forward.nateberkopec (Nate Berkopec)
The application I'm reproducing it on is here: https://github.com/codetriage/codetriage I think you should be able to "bundle install" and then use my script above and it would reproduce. nateberkopec (Nate Berkopec)
Does not reproduce on 2.5.5, and reproduces on 2.6.0 Unfortunately, doesn't reproduce with a simple script, e.g.: ```ruby require "memory_profiler" report = MemoryProfiler.report do 1_000_000.times { "allocate a string" } end report...nateberkopec (Nate Berkopec)
This reproduces on 2.7.0 as well (though the thing calling `rb_str_hash` was different, this time `objspace_each_objects`) ``` -- C level backtrace information ------------------------------------------- /Users/nateberkopec/.rubies/ruby...nateberkopec (Nate Berkopec)
Seen in ruby 2.6.5. ``` -- C level backtrace information ------------------------------------------- /Users/nateberkopec/.rubies/ruby-2.6.5/bin/ruby(rb_vm_bugreport+0x82) [0x10632d9c2] /Users/nateberkopec/.rubies/ruby-2.6.5/bin/rub...nateberkopec (Nate Berkopec)
> Can we introduce it just after every major (full) gc? I agree. If the necessary steps are Full GC -> Update -> Move -> Full GC, then it would be faster to just compact automatically after a full GC which is already occurring. I unde...nateberkopec (Nate Berkopec)
Yura Sokolov wrote: > > I believe we don't have any drawback with 256MB virtual memory allocation. (but it can depend on OSs) > ... Well, as long as your Ruby process never actually needs more than 64MB of memory, that's not a problem,...nateberkopec (Nate Berkopec)
Log is available here: https://travis-ci.org/getsentry/raven-ruby/jobs/142024230 Following the steps in the log should repro. It may be Rails 4.2 related, as our Rails 5.0 build does not segfault.nateberkopec (Nate Berkopec)