[#15067] rb_eval_string — OJ <oj@...7.com>

OJです。

39 messages 2001/11/08
[#15068] Re: rb_eval_string — nobu.nakada@... 2001/11/08

なかだです。

[#15069] Re: rb_eval_string — OJ <oj@...7.com> 2001/11/08

OJです。

[#15071] Re: rb_eval_string — nobu.nakada@... 2001/11/09

なかだです。

[#15077] Re: rb_eval_string — OJ <oj@...7.com> 2001/11/09

OJです。

[#15078] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/09

わたなべです。

[#15083] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/09

こんにちは、なかむら(う)です。

[#15088] Re: rb_eval_string — nobu.nakada@... 2001/11/09

なかだです。

[#15089] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/09

こんにちは、なかむら(う)です。

[#15092] Re: rb_eval_string — nobu.nakada@... 2001/11/09

なかだです。

[#15096] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/09

こんにちは、なかむら(う)です。

[#15109] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15112] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15114] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15115] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15119] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15121] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15124] Re: rb_eval_string — WATANABE Hirofumi <eban@...> 2001/11/12

わたなべです。

[#15126] Re: rb_eval_string — "U.Nakamura" <usa@...> 2001/11/12

こんにちは、なかむら(う)です。

[#15174] strange behavior about PTY.spawn — akira yamada / やまだあきら <akira@...>

18 messages 2001/11/15
[#15176] Re: strange behavior about PTY.spawn — matz@... (Yukihiro Matsumoto) 2001/11/15

まつもと ゆきひろです

[#15251] Re: [ruby-ext:01999] Re: syslog module is becoming ready — "Akinori MUSHA" <knu@...>

 というわけで 1.7 に syslog モジュールを入れました。

43 messages 2001/11/26

[#15270] ruby on NetBSD — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

25 messages 2001/11/28
[#15271] Re: ruby on NetBSD — Takahiro Kambe <taca@...> 2001/11/28

In message <20011128181510.3D11.USA@osb.att.ne.jp>

[#15272] Re: ruby on NetBSD — "U.Nakamura" <usa@...> 2001/11/28

こんにちは、なかむら(う)です。

[#15278] Re: ruby on NetBSD — Takahiro Kambe <taca@...> 2001/11/28

In message <20011128182726.3D14.USA@osb.att.ne.jp>

[#15296] Re: ruby on NetBSD — "U.Nakamura" <usa@...> 2001/11/29

こんにちは、なかむら(う)です。

[#15298] time.rb — Tanaka Akira <akr@...17n.org>

というわけで、timex.rb 改め time.rb が rough に入ったのでご意見募集です。

27 messages 2001/11/29

[ruby-dev:15071] Re: rb_eval_string

From: nobu.nakada@...
Date: 2001-11-09 01:57:59 UTC
List: ruby-dev #15071
なかだです。

At Fri, 9 Nov 2001 02:02:58 +0900,
OJ <oj@v7.com> wrote:
> >バージョンとプラットフォームを教えてください。
> 
> 1.7、mswin32 です。

CVS最新ということでよろしいでしょうか。

> >rb_gc()を呼んでもメモリ使用量は減りませんか。
> 
> 減りますが、元には戻りません。
> 実行するのが "a = 0" ではなく "a" とか "0" などだと大丈夫な感じです。

rb_eval_string()とrb_gc()を繰り返せば、最初ある程度増えてもその
後ほぼ一定範囲内に収まらないでしょうか。rubyのGCはcompactionを
するわけではないので、メモリが虫喰い状態になって使用されていな
い領域が残ることがあります。これはmalloc()でも同じことですが。

少なくとも以下の方法では、メモリ使用量が増え続けるという症状は
確認できませんでした。ruby 1.7.2 (2001-11-08) [i686-linux]です。


$ cat eval_string.c
#include "ruby.h"

#define EVAL_STRING(name, expr) \
static VALUE name(VALUE self, VALUE num) \
{					 \
    int i, n = FIX2INT(num);		 \
					 \
    for (i = 0; i < n; i++) {		 \
	rb_eval_string(#expr);		 \
    }					 \
    return Qnil;			 \
}

EVAL_STRING(eval_string1, a = 0);
EVAL_STRING(eval_string2, a);
EVAL_STRING(eval_string3, 0);

void
Init_eval_string(void)
{
    rb_define_global_function("eval_string1", eval_string1, 1);
    rb_define_global_function("eval_string2", eval_string2, 1);
    rb_define_global_function("eval_string3", eval_string3, 1);
}

$ cat test.rb
require 'eval_string'

def statm
  open("/proc/self/statm"){|f|f.read(1024)}
end

puts "before: "+statm

a = 0
[:eval_string1, :eval_string2, :eval_string3].each do |m|
  puts m
  100.times {|i|
    send(m, 10000)
    GC.start
    printf "%2d: %s", i, statm
  }
end

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread