[#60404] is RB_GC_GUARD needed in rb_io_syswrite? — Eric Wong <normalperson@...>
I haven't gotten it to crash as-is, but it seems like we need to
4 messages
2014/02/01
[#60682] volatile usages — Eric Wong <normalperson@...>
Hi all, I went ahead and removed some use of volatile which were once
5 messages
2014/02/13
[#60794] [RFC] rearrange+pack vtm and time_object structs — Eric Wong <normalperson@...>
Extracted from addendum on top of Feature #9362 (cache-aligned objects).
4 messages
2014/02/16
[#61139] [ruby-trunk - Feature #9577] [Open] [PATCH] benchmark/driver.rb: align columns in text output — normalperson@...
Issue #9577 has been reported by Eric Wong.
3 messages
2014/02/28
[ruby-core:60850] [ruby-trunk - Feature #9113] Ship Ruby for Linux with jemalloc out-of-the-box
From:
sam.saffron@...
Date:
2014-02-19 00:05:37 UTC
List:
ruby-core #60850
Issue #9113 has been updated by Sam Saffron. @Eric sure bench needs a bit more love to be totally representative of a rails request. Also this test will do ko1 lots of help improving the promotion to oldgen algorithm, we are talking about changing oldgen promotion to either use additional flags (as a counter) or only promote on major GC. Either change will slash RSS in this test. ``` sam@ubuntu ~ % rbenv shell 2.1.0 sam@ubuntu ~ % ruby stress_mem.rb Duration: 5.459891703 sam 17870 109 3.8 267076 238732 pts/10 Sl+ 11:03 0:05 ruby stress_mem.rb sam@ubuntu ~ % rbenv shell 2.0.0-p353 sam@ubuntu ~ % ruby stress_mem.rb Duration: 7.616282557 sam 17986 95.6 2.0 151120 125684 pts/10 Sl+ 11:04 0:07 ruby stress_mem.rb sam@ubuntu ~ % ``` This is basically a repro of the memory growth under 2.1.0 people are seeing. ---------------------------------------- Feature #9113: Ship Ruby for Linux with jemalloc out-of-the-box https://bugs.ruby-lang.org/issues/9113#change-45264 * Author: Sam Saffron * Status: Feedback * Priority: Normal * Assignee: * Category: build * Target version: ---------------------------------------- libc's malloc is a problem, it fragments badly meaning forks share less memory and is slow compared to tcmalloc or jemalloc. both jemalloc and tcmalloc are heavily battle tested and stable. 2 years ago redis picked up the jemalloc dependency see: http://oldblog.antirez.com/post/everything-about-redis-24.html To quote antirez: `` But an allocator is a serious thing. Since we introduced the specially encoded data types Redis started suffering from fragmentation. We tried different things to fix the problem, but basically the Linux default allocator in glibc sucks really, really hard. `` --- I recently benched Discourse with tcmalloc / jemalloc and default and noticed 2 very important thing: median request time reduce by up to 10% (under both) PSS (proportional share size) is reduced by 10% under jemalloc and 8% under tcmalloc. We can always use LD_PRELOAD to yank these in, but my concern is that standard distributions are using a far from optimal memory allocator. It would be awesome if the build, out-of-the-box, just checked if it was on Linux (eg: https://github.com/antirez/redis/blob/unstable/src/Makefile#L30-L34 ) and then used jemalloc instead. -- http://bugs.ruby-lang.org/