[#13161] hacking on the "heap" implementation in gc.c — Lloyd Hilaiel <lloyd@...>
Hi all,
Hi,
On Fri, Nov 02, 2007 at 04:09:53AM +0900, Lloyd Hilaiel wrote:
On Tue, Nov 06, 2007 at 03:15:52AM +0900, Lloyd Hilaiel wrote:
Paul Brannan wrote:
[#13182] Thinking of dropping YAML from 1.8 — Urabe Shyouhei <shyouhei@...>
Hello all.
On 11/3/07, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
On Nov 3, 2007, at 3:47 PM, Alexey Verkhovsky wrote:
where to start ... to fix the YAML code bugs
Ujwal Reddy Malipeddi wrote:
[#13196] Subscribe to list w/o email — Trans <transfire@...>
I'm now using the ruby-core-google interface to this list, rather then
[#13198] Ruby's Standard Library could use a lead maintainer — "Gregory Brown" <gregory.t.brown@...>
Hi folks,
On Nov 4, 2007, at 11:22 AM, Gregory Brown wrote:
James Edward Gray II wrote:
On 11/4/07, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:
[#13206] guessutf 1.0.0 released — Wolfgang Nádasi-Donner <ed.odanow@...>
Dear Ruby designers, developers, and testers!
[#13215] Auto-translating gateway between ruby-core and ruby-dev? — Charles Oliver Nutter <charles.nutter@...>
I for one feel left out of conversations on ruby-dev. Barring my
[#13221] Re: Ruby's Standard Library could use a lead maintainer — Brent Roman <brent@...>
Brent Roman schrieb:
On 11/5/07, Wolfgang N=E1dasi-Donner <ed.odanow@wonado.de> wrote:
Gregory Brown schrieb:
[#13238] performance problem in 1.9 — Paul Brannan <pbrannan@...>
Checked latest 1.9 out of svn last week to run this test.
Paul Brannan wrote:
[#13248] Re: performance problem in 1.9 — Wolfgang Nádasi-Donner <ed.odanow@...>
Is it possible that it has a relationship with my remark about identifying
[#13254] send can't call protected methods, but invoke_method can — David Flanagan <david@...>
Hi,
[#13259] Frightening retry behavior should be deprecated and removed — Charles Oliver Nutter <charles.nutter@...>
Witness:
Hi,
[#13288] Unrecovered memory leak thoughts. — "Roger Pack" <rogerpack2005@...>
So it seems from my trivial analysis that there are instances when
On 11/8/07, Roger Pack <rogerpack2005@gmail.com> wrote:
On Thu, Nov 08, 2007 at 09:13:34PM +0900, Rick DeNatale wrote:
[#13289] Proposal of a new operator for Method and Proc — Jordi <mumismo@...>
Hello, this email is long but I hope you to read it. I think it is worth it.
Jordi wrote:
On Nov 8, 2007 7:03 PM, Gonzalo Garramu=F1o <ggarra@advancedsl.com.ar> wrot=
[#13292] Leak with regexp in method with no local vars. — "Jonas Pfenniger" <zimbatm@...>
The rubyforge -> ml link seems to be down so here is the link :
Also reproducible with
2007/11/9, Ryan Davis <ryand-ruby@zenspider.com>:
[#13305] The document of random algorithm? — sishen <yedingding@...>
Hi, guys. I want to know the detailed algorithm of random number.
[#13315] primary encoding and source encoding — David Flanagan <david@...>
I've got a couple of questions about the handling of primary encoding.
Hi,
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
In article <E1IqOZI-0001t7-LT@x31>,
Hi,
[#13347] http compression, zlib agnostic, for 1.9 — Hugh Sasse <hgs@...>
I have revised my http compression (gzip, deflate) patch such that
On Sat, Nov 10, 2007 at 05:28:01AM +0900, Hugh Sasse wrote:
[#13351] Keyword Arguments — Trans <transfire@...>
Peter Vanbroekhoven mentioned this to me and I have to agree. I'd
[#13362] RubyGems imported into 1.9 trunk — Eric Hodel <drbrain@...7.net>
There are a few tests breaking due to rbconfig.rb not matching what ./
On Nov 10, 2007 4:53 PM, Eric Hodel <drbrain@segment7.net> wrote:
On Nov 10, 2007, at 01:21 , Jordi wrote:
Eric,
On Nov 10, 2007, at 15:44 , David Flanagan wrote:
Eric Hodel wrote:
On Nov 11, 2007, at 22:34 , David Flanagan wrote:
[#13363] IO.read, IO#read (and similar methods) - Length Parameter Usage for Non One-Byte Encodings — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning dear Ruby folks!
[#13368] method names in 1.9 — "David A. Black" <dblack@...>
Hi --
Hi,
Hi --
Yukihiro Matsumoto wrote:
On 11/11/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
Austin Ziegler wrote:
David Flanagan wrote:
Hi --
Quoting dblack@rubypal.com, on Mon, Nov 12, 2007 at 06:45:42AM +0900:
Hi -
On Tue, Nov 13, 2007 at 09:40:22PM +0900, David A. Black wrote:
Hi --
Summing it up:
Hi --
On Nov 12, 2007 8:42 PM, David A. Black <dblack@rubypal.com> wrote:
On 12/11/2007, David A. Black <dblack@rubypal.com> wrote:
On Sun, Nov 11, 2007 at 05:50:18PM +0900, Trans wrote:
On Nov 11, 2007 7:01 PM, Matthew Boeh <mboeh@desperance.net> wrote:
On Nov 11, 2007 5:01 AM, Matthew Boeh <mboeh@desperance.net> wrote:
[#13377] Link errors for trunk on Mac OS X — "Lyle Johnson" <fxrubyguy@...>
Apologies in advance if this is a FAQ, but I'm trying to build the
[#13448] Time#== bug? — "Berger, Daniel" <Daniel.Berger@...>
Hi,
[#13457] mingw rename — "Roger Pack" <rogerpack2005@...>
Currently for different windows' builds, the names for RUBY_PLATFORM
On Nov 12, 2007 10:13 PM, Roger Pack <rogerpack2005@gmail.com> wrote:
[#13470] trunk's parse.c fails to compile — "Laurent Sansonetti" <laurent.sansonetti@...>
Hi,
Laurent Sansonetti wrote:
Charles Oliver Nutter wrote:
[#13485] Proposal: Array#walker — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning all together!
A nicer version may be...
On Wed, 14 Nov 2007, Trans wrote:
Hugh Sasse wrote:
There is one big difference between the actual proposals and my original
[#13498] state of threads in 1.9 — Jordi <mumismo@...>
Are Threads mapped to threads on the underlying operating system in
On Nov 14, 2007, at 11:18 , Bill Kelly wrote:
On Nov 15, 2007 7:33 AM, Eric Hodel <drbrain@segment7.net> wrote:
Jordi wrote:
[#13513] Proc#hash returns different values for same body — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
[#13528] test/unit and miniunit — Ryan Davis <ryand-ruby@...>
When is the 1.9 freeze?
On Nov 14, 2007, at 18:43 , Trans wrote:
[#13536] mswin32-vc6 segmentation fault due ruby_in_eval wrong definition — "Luis Lavena" <luislavena@...>
Summary:
Hi,
On Nov 15, 2007 12:44 PM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#13542] Iconv#iconv returning wrong object — "Dirk Traulsen" <dirk.traulsen@...>
c:\>ri Iconv#iconv
Hi,
Am 15 Nov 2007 um 21:58 hat Nobuyoshi Nakada geschrieben:
Hi,
Am 16 Nov 2007 um 17:07 hat Nobuyoshi Nakada geschrieben:
[#13564] Thoughts about Array#compact!, Array#flatten!, Array#reject!, String#strip!, String#capitalize!, String#gsub!, etc. — Wolfgang Nádasi-Donner <ed.odanow@...>
Good evening all together!
Matz has added Object.tap to Ruby 1.9 which is intended for use in
On Nov 15, 2007 8:14 PM, Wolfgang N=E1dasi-Donner <ed.odanow@wonado.de> wro=
Nikolai Weibull schrieb:
Nikolai Weibull schrieb:
Hi --
Hi --
On Nov 16, 2007 3:19 PM, David A. Black <dblack@rubypal.com> wrote:
Hi --
On Nov 16, 2007 12:40 PM, David A. Black <dblack@rubypal.com> wrote:
On Nov 16, 2007 3:40 AM, David A. Black <dblack@rubypal.com> wrote:
David A. Black wrote:
Hi --
On Nov 16, 2007 12:40 PM, David A. Black <dblack@rubypal.com> wrote:
Rick DeNatale wrote:
murphy schrieb:
Hi --
On 11/16/07, Trans <transfire@gmail.com> wrote:
On Nov 16, 2007, at 8:43 PM, Austin Ziegler wrote:
[#13600] Re: [PATCH] CGI::Session::PStore partitioned directories — Tanaka Akira <akr@...>
In article <473D827F.10909@gmail.com>,
[#13614] Suggestion for native thread tests — "Eust痃uio Rangel" <eustaquiorangel@...>
Hi!
Eust痃uio Rangel wrote:
On Nov 17, 2007 2:02 PM, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
On Nov 17, 2007 2:25 PM, Eust=E1quio Rangel <eustaquiorangel@gmail.com> wro=
[#13618] segfault in ostruct with 1.8.6, where to get help? — "andrew taylor" <aktxyz@...>
Hello folks, not sure if this is the right place...
run it in gdb, see if it gives you a better backtrace (?)
[#13676] Failing to compile trunk under Ubuntu — Brian Candler <B.Candler@...>
I tried compiling trunk yesterday and today, on two different Ubuntu 6.06
[#13685] Problems with \M-x in utf-8 encoded strings — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
At 22:01 07/11/18, Wolfgang N〓dasi-Donner wrote:
Martin Duerst schrieb:
[#13688] base64.c vs. base64.rb — Trans <transfire@...>
Hi--
[#13704] Build failure trying to use rb_define_alias on rb_mKernel — "Berger, Daniel" <Daniel.Berger@...>
Hi,
[#13709] Change in system() behaviour — Dave Thomas <dave@...>
In 1.8, system("badcmd") returned false.
[#13741] retry semantics changed — Dave Thomas <dave@...>
In 1.8, I could write:
On Nov 23, 2007 12:06 PM, Dave Thomas <dave@pragprog.com> wrote:
Hi,
Hi,
Dave Thomas wrote:
Dave Thomas wrote:
Charles Oliver Nutter wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Hi,
Chiming in again on this...
In article <10A28D45-97EE-47EB-B98A-1B197F30C0E9@fallingsnow.net>,
In article <6168A472-3688-4D85-AAE1-49A2F376B908@fallingsnow.net>,
[#13781] C-Core-Questions — <saladin.mundi@...>
Hi guys, sorry that I'm posting into the core mailinglist, but in the =
[#13787] Syntax error when using comment between two lines in new method chain syntax — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
[#13792] Anyone tried -r debug on OSX? — Dave Thomas <dave@...>
It hangs for me here. I have to kill -9 to stop it.
[#13805] Socket.gethostbyname and Reverse Lookups: A Strange and Terrible Saga — "Bill Kelly" <billk@...>
(with apologies to Hunter Thompson ;)
[PATCH] Limit Ruby 1.8.6 process size
Over the past few weeks I've seen quite a few posts to this list about
Ruby 1.8.6 "memory leaks". I may have stumbed onto a source of
these "leaks" while trying to track down another related problem.
This code runs at the end of every GC sweep: (in gc.c)
if (malloc_increase > malloc_limit) {
malloc_limit += (malloc_increase - malloc_limit) * (double)live /
(live + freed);
if (malloc_limit < GC_MALLOC_LIMIT) malloc_limit = GC_MALLOC_LIMIT;
}
Does anyone know the intended purpose of this code?
It is new in version 1.8. It apears to be trying to dynamically adjust the
malloc_limit upwards in response to unsuccessful GC passes.
I don't see any code that can pull the malloc_limit back down.
So, I believe this causes the malloc_limit to slowly increase without bound.
I think it will lessen the frequency of GC's, but any speed improvement
gained will be lost when the OS's Virtual Memory system starts swapping
as a result of ever growing process sizes.
The attached patch does two things:
1) It eliminates the dynamic adjustment of malloc_limit
2) It addes methods in the GC module to control the malloc_limit
from within the Ruby application so they can adjust it.
- brent
Attachments (1)
--- gc.c 2007-11-09 17:08:15.000000000 -0800
+++ limited/gc.c 2007-11-12 11:37:00.000000000 -0800
@@ -74,6 +74,48 @@
static VALUE nomem_error;
static void garbage_collect();
+
+/*
+ * call-seq:
+ * GC.limit => increase limit in bytes
+ * GC.limit= => new increase limit in bytes
+ *
+ * Get or set the # of bytes that may be allocated before triggering
+ * a mark and sweep by the garbarge collector to reclaim unused storage.
+ * Attempts to set the GC.limit= less than 0 will be ignored.
+ *
+ * GC.limit=5000000 #=> 5000000
+ * GC.limit #=> 5000000
+ * GC.limit=-50 #=> 5000000
+ * GC.limit=0 #=> 0
+ *
+ */
+static VALUE gc_getlimit(VALUE mod)
+{
+ return ULONG2NUM(malloc_limit);
+}
+
+static VALUE gc_setlimit(VALUE mod, VALUE newLimit)
+{
+ long limit = NUM2LONG(newLimit);
+ if (limit < 0) return gc_getlimit(mod);
+ malloc_limit = limit;
+ return newLimit;
+}
+
+
+/*
+ * call-seq:
+ * GC.increase
+ *
+ * Get # of bytes that have been allocated since the last mark & sweep
+ *
+ */
+static VALUE gc_increase(VALUE mod)
+{
+ return ULONG2NUM(malloc_increase);
+}
+
void
rb_memerror()
{
@@ -1042,7 +1084,6 @@
RVALUE *p, *pend, *final_list;
int freed = 0;
int i;
- unsigned long live = 0;
unsigned long free_min = 0;
for (i = 0; i < heaps_used; i++) {
@@ -1102,7 +1143,6 @@
}
else {
RBASIC(p)->flags &= ~FL_MARK;
- live++;
}
p++;
}
@@ -1119,10 +1159,6 @@
freed += n;
}
}
- if (malloc_increase > malloc_limit) {
- malloc_limit += (malloc_increase - malloc_limit) * (double)live / (live + freed);
- if (malloc_limit < GC_MALLOC_LIMIT) malloc_limit = GC_MALLOC_LIMIT;
- }
malloc_increase = 0;
if (freed < free_min) {
add_heap();
@@ -2062,6 +2098,9 @@
rb_define_singleton_method(rb_mGC, "start", rb_gc_start, 0);
rb_define_singleton_method(rb_mGC, "enable", rb_gc_enable, 0);
rb_define_singleton_method(rb_mGC, "disable", rb_gc_disable, 0);
+ rb_define_singleton_method(rb_mGC, "limit", gc_getlimit, 0);
+ rb_define_singleton_method(rb_mGC, "limit=", gc_setlimit, 1);
+ rb_define_singleton_method(rb_mGC, "increase", gc_increase, 0);
rb_define_method(rb_mGC, "garbage_collect", rb_gc_start, 0);
rb_mObSpace = rb_define_module("ObjectSpace");