[#18427] shrink memory — nagai@...
永井@知能.九工大です.
7 messages
2002/10/02
[#18440] racc segv revisited — "Akinori MUSHA" <knu@...>
次のバグの件なんですが、現時点では原因究明を含めて未解決という
24 messages
2002/10/02
[#18617] Re: racc segv revisited
— "Akinori MUSHA" <knu@...>
2002/11/02
At Wed, 2 Oct 2002 23:19:59 +0900,
[#18626] 1.6.8 preview (Re: Re: racc segv revisited)
— matz@... (Yukihiro Matsumoto)
2002/11/03
まつもと ゆきひろです
[#18641] Re: 1.6.8 preview (Re: Re: racc segv revisited)
— "Akinori MUSHA" <knu@...>
2002/11/04
At Sun, 3 Nov 2002 19:51:48 +0900,
[#18652] Re: 1.6.8 preview (Re: Re: racc segv revisited)
— matz@... (Yukihiro Matsumoto)
2002/11/06
まつもと ゆきひろです
[#18465] warning for outer local variable assignment by block parameter — Tanaka Akira <akr@...17n.org>
ついさっき痛い目にあったので提案するのですが、1.7 で、ブロックパラメー
6 messages
2002/10/09
[#18473] Compiling using oldnames on mswin/mingw/bccwin — nobu.nakada@...
なかだです。
12 messages
2002/10/10
[#18475] Re: Compiling using oldnames on mswin/mingw/bccwin
— WATANABE Hirofumi <eban@...>
2002/10/10
わたなべです。
[#18478] Re: Compiling using oldnames on mswin/mingw/bccwin
— nobu.nakada@...
2002/10/10
なかだです。
[#18476] Re: Compiling using oldnames on mswin/mingw/bccwin
— "U.Nakamura" <usa@...>
2002/10/10
こんにちは、なかむら(う)です。
[#18482] mem leak? — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
8 messages
2002/10/10
[#18483] Re: mem leak?
— nobu.nakada@...
2002/10/10
なかだです。
[#18484] Re: mem leak?
— matz@... (Yukihiro Matsumoto)
2002/10/10
まつもと ゆきひろです
[#18494] PStoreのFile.copyの中でErrno::EBADF — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
5 messages
2002/10/11
[#18506] How to raise LocalJumpError with next and redo? — Tanaka Akira <akr@...17n.org>
ふと疑問に思ったのですが、どうやったら next や redo で LocalJumpError
6 messages
2002/10/12
[#18509] Re: How to raise LocalJumpError with next and redo?
— nobu.nakada@...
2002/10/12
なかだです。
[#18514] Segmentaion fault of miniruby — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
13 messages
2002/10/13
[#18515] Re: Segmentaion fault of miniruby
— 小西 弘将 <konishih@...6.so-net.ne.jp>
2002/10/13
小西 弘将です。
[#18517] Re: Segmentaion fault of miniruby
— "U.Nakamura" <usa@...>
2002/10/15
こんにちは、なかむら(う)です。
[#18518] Re: Segmentaion fault of miniruby
— nobu.nakada@...
2002/10/15
なかだです。
[#18519] Re: Segmentaion fault of miniruby
— "U.Nakamura" <usa@...>
2002/10/15
こんにちは、なかむら(う)です。
[#18520] Re: Segmentaion fault of miniruby
— nobu.nakada@...
2002/10/15
なかだです。
[#18537] symbol literal with non-alphanumeric — nobu.nakada@...
なかだです。
7 messages
2002/10/18
[#18540] ruby 1.6 core dump — "Akinori MUSHA" <knu@...>
以下の環境でコアを吐いたそうです。とりあえずご報告まで。
6 messages
2002/10/19
[#18558] ruby version — 小西 弘将 <konishih@...6.so-net.ne.jp>
小西 弘将です。
9 messages
2002/10/22
[#18559] Re: ruby version
— "U.Nakamura" <usa@...>
2002/10/22
こんにちは、なかむら(う)です。
[#18572] avoid substituting $(s) in a template of LIBPATHFLAG — Ryo HAYASAKA <ryoh@...>
早坂@北陸先端です.
7 messages
2002/10/23
[#18573] Re: avoid substituting $(s) in a template of LIBPATHFLAG
— nobu.nakada@...
2002/10/23
なかだです。
[#18574] Re: avoid substituting $(s) in a template of LIBPATHFLAG
— Ryo HAYASAKA <ryoh@...>
2002/10/23
早坂@北陸先端です.
[#18582] embedded ruby interpreter friendly patch — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
9 messages
2002/10/26
[#18592] Re: embedded ruby interpreter friendly patch
— matz@... (Yukihiro Matsumoto)
2002/10/28
まつもと ゆきひろです
[#18593] Re: embedded ruby interpreter friendly patch
— nobu.nakada@...
2002/10/28
なかだです。
[#18594] Re: embedded ruby interpreter friendly patch
— matz@... (Yukihiro Matsumoto)
2002/10/28
まつもと ゆきひろです
[#18583] Re: [ruby-cvs] ruby/djgpp, ruby/ext, ruby, ruby/lib: * djgpp/*: sync with the latest. — nobu.nakada@...
なかだです。
4 messages
2002/10/27
[#18584] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib: ext/extmk.rb(78) : The unnecessary error when installing by bccwin32 is controlled. — WATANABE Hirofumi <eban@...>
わたなべです。
6 messages
2002/10/27
[#18590] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib: ext/extmk.rb(78) : The unnecessary error when installing by bccwin32 is controlled.
— 小西 弘将 <konishih@...6.so-net.ne.jp>
2002/10/27
小西 弘将です。
[#18598] Re: Access to Windoze Registry? — kjana@...4lab.to (YANAGAWA Kazuhisa)
>From ruby-talk....
11 messages
2002/10/28
[#18616] Re: Access to Windoze Registry?
— Takaaki Tateishi <ttate@...>
2002/11/02
立石です.
[#18618] Re: Access to Windoze Registry?
— kjana@...4lab.to (YANAGAWA Kazuhisa)
2002/11/03
In message <200211021813.gA2IDOch017615@smtp16.dti.ne.jp>
[#18632] Re: Access to Windoze Registry?
— "U.Nakamura" <usa@...>
2002/11/03
こんにちは、なかむら(う)です。
[#18602] interrupt while initializaion — nobu.nakada@...
なかだです。
5 messages
2002/10/29
[#18606] private_method_defined? — Shin-ichiro HARA <sinara@...>
原です。
11 messages
2002/10/30
[#18607] Re: private_method_defined?
— matz@... (Yukihiro Matsumoto)
2002/10/30
まつもと ゆきひろです
[#18608] Re: private_method_defined?
— Shin-ichiro HARA <sinara@...>
2002/10/30
原です。
[#18610] Re: private_method_defined?
— matz@... (Yukihiro Matsumoto)
2002/10/30
まつもと ゆきひろです
[ruby-dev:18487] Re: mem leak?
From:
nobu.nakada@...
Date:
2002-10-10 13:30:31 UTC
List:
ruby-dev #18487
なかだです。
At Thu, 10 Oct 2002 20:59:32 +0900,
Tanaka Akira wrote:
> 生きているオブジェクトが占めるメモリ量の 2倍ということを意図しています。
>
> ついでにいえば、生きているオブジェクトが占めるメモリ量は GC 直後に観測
> することを想定してます。
正確に計算するのは無理があるので、大雑把ですがこんなところでど
うでしょうか。[ruby-dev:18482]で試したところでは7MB弱になりまし
た。GCの速度がどの程度落ちるかは測ってみてませんが。
Index: gc.c
===================================================================
RCS file: /cvs/ruby/src/ruby/gc.c,v
retrieving revision 1.106
diff -u -2 -p -r1.106 gc.c
--- gc.c 9 Oct 2002 06:12:54 -0000 1.106
+++ gc.c 10 Oct 2002 13:22:09 -0000
@@ -53,4 +53,14 @@ void *alloca ();
#endif
+#ifndef GC_MALLOC_LIMIT
+#if defined(MSDOS) || defined(__human68k__)
+#define GC_MALLOC_LIMIT 200000
+#else
+#define GC_MALLOC_LIMIT 8000000
+#endif
+#endif
+
+static unsigned long malloc_memories = 0;
+static unsigned long malloc_limit = GC_MALLOC_LIMIT;
static void run_final();
static VALUE nomem_error;
@@ -79,5 +89,9 @@ ruby_xmalloc(size)
}
if (size == 0) size = 1;
+ malloc_memories += size;
+ if (malloc_memories > malloc_limit) {
+ rb_gc();
+ }
RUBY_CRITICAL(mem = malloc(size));
if (!mem) {
@@ -116,4 +130,5 @@ ruby_xrealloc(ptr, size)
if (!ptr) return xmalloc(size);
if (size == 0) size = 1;
+ malloc_memories += size;
RUBY_CRITICAL(mem = realloc(ptr, size));
if (!mem) {
@@ -844,4 +859,13 @@ rb_gc_mark_children(ptr)
static void obj_free _((VALUE));
+static int
+size_of_table(tbl)
+ struct st_table *tbl;
+{
+ if (!tbl) return 0;
+ return tbl->num_bins * sizeof(struct st_table_entry *) +
+ tbl->num_entries * 4 * sizeof(VALUE);
+}
+
static void
gc_sweep()
@@ -850,4 +874,5 @@ gc_sweep()
int freed = 0;
int i, j;
+ unsigned long live = 0;
if (ruby_in_compile && ruby_parser_stack_on_heap()) {
@@ -899,4 +924,30 @@ gc_sweep()
else {
RBASIC(p)->flags &= ~FL_MARK;
+ live += sizeof(VALUE);
+ switch (TYPE(p)) {
+ case T_OBJECT:
+ live += size_of_table(ROBJECT(p)->iv_tbl);
+ break;
+ case T_CLASS:
+ case T_ICLASS:
+ live += size_of_table(RCLASS(p)->iv_tbl);
+ live += size_of_table(RCLASS(p)->m_tbl);
+ break;
+ case T_STRING:
+ live += RSTRING(p)->len+1;
+ break;
+ case T_ARRAY:
+ live += RARRAY(p)->len * sizeof(VALUE);
+ break;
+ case T_HASH:
+ live += size_of_table(RHASH(p)->tbl);
+ break;
+ case T_BIGNUM:
+ live += RBIGNUM(p)->len * sizeof(BDIGIT);
+ break;
+ case T_STRUCT:
+ live += RSTRUCT(p)->len * sizeof(VALUE);
+ break;
+ }
}
p++;
@@ -915,4 +966,6 @@ gc_sweep()
}
}
+ malloc_limit = live;
+ malloc_memories = 0;
if (freed < FREE_MIN) {
add_heap();
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦