[#16113] Strange idea... exporting from a scope — "Hal E. Fulton" <hal9000@...>

Hello...

33 messages 2001/06/01

[#16364] Re: Garbage Collection? — Michael Davis <mdavis@...>

Windows 2000 and linux (RedHat 6.2). I have run these tests on both OSs.

12 messages 2001/06/09

[#16400] Symbolic Computation III — Mathieu Bouchard <matju@...>

14 messages 2001/06/11

[#16502] Playing with Ruby Syntax (was: Initial thoughts about Ruby From a Smalltalk Programmer) — jweirich@...

Michael> Hi Everyone, I have to say I'm utterly fascinated by Ruby

9 messages 2001/06/15

[#16661] Problem running irb with Ruby 1.6.4 under FreeBSD 4.0 — Bob Alexander <balexander@...>

I've installed Ruby 1.6.4 on a FreeBSD 4.0 machine, and get the

11 messages 2001/06/20

[#16686] opening db files made by apache dbmmanage — Fritz Heinrichmeyer <fritz.heinrichmeyer@...>

14 messages 2001/06/21

[#16801] rb_define_class() vs Class.new() — Kero van Gelder <kero@...4050.upc-d.chello.nl>

Hi,

18 messages 2001/06/23
[#16802] Re: rb_define_class() vs Class.new() — ts <decoux@...> 2001/06/23

>>>>> "K" == Kero van Gelder <kero@d4050.upc-d.chello.nl> writes:

[#16841] RE: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...>

Next week I'll try to rebuild Ruby with Unicode strings. But it would be

15 messages 2001/06/25
[#16842] Re: national characters is strings — matz@... (Yukihiro Matsumoto) 2001/06/25

Hi,

[#16843] Re: national characters is strings — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/25

That's good enough. But I'm afraid this could ( not would ) cause string

[#16868] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

14 messages 2001/06/25
[#16873] RE: Something strange with Ruby's inheritance mechanism — "Aleksei Guzev" <aleksei.guzev@...> 2001/06/26

[#16879] Re: Something strange with Ruby's inheritance mechanism — Mathieu Bouchard <matju@...> 2001/06/26

On Tue, 26 Jun 2001, Aleksei Guzev wrote:

[#16869] Something strange with Ruby's inheritance mechanism — Eric Jacoboni <jaco@...>

As Ruby beginner, i try some "canonical" OO scripts. Doing so, I've

12 messages 2001/06/25

[#16881] — "Aleksei Guzev" <aleksei.guzev@...>

32 messages 2001/06/26
[#16916] Re: Method overloading (option) Was: Re: — "Wayne Blair" <wayne.blair@...> 2001/06/26

[#16920] Re: Method overloading (option) Was: Re: — matz@... (Yukihiro Matsumoto) 2001/06/26

Hi,

[#16888] finalizers, destructors and whatnot — "David Leal" <david@...>

Hi all,

16 messages 2001/06/26

[#17037] keeping an Exception object alive — David Alan Black <dblack@...>

Hello --

19 messages 2001/06/28
[#17055] Re: keeping an Exception object alive — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17066] RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17076] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/06/29

Hi,

[#17079] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/06/29

Hello --

[#17138] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — matz@... (Yukihiro Matsumoto) 2001/07/02

Hi,

[#17141] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — David Alan Black <dblack@...> 2001/07/02

Hello --

[#17142] Re: RCR: Exception methods (was: Re: Re: keeping an Exception object alive) — ts <decoux@...> 2001/07/02

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

[ruby-talk:16364] Re: Garbage Collection?

From: Michael Davis <mdavis@...>
Date: 2001-06-09 16:08:29 UTC
List: ruby-talk #16364
Windows 2000 and linux (RedHat 6.2).  I have run these tests on both OSs. 
 Run top while the script is running and you should see that the ruby 
process continuously consumes memory.  Here is a better example:

def test_dump(count)
   system("ps aux | grep rb | grep -v grep")
   a = []
   0.upto(9999) {|i| a[i] = rand(999999)}
   0.upto(count) do |i|
      0.upto(99) do |i|
         b = Marshal.dump(a)
      end
      b = nil
      GC.start
      system("ps aux | grep rb | grep -v grep")
      #print "GC.start\n"
   end
   0.upto(a.nitems-1){|i| a[i] = nil}
   a = nil
   system("ps aux | grep rb | grep -v grep")
end

test_dump(200000)
Here is the output:
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
mdavis    8264  0.0  0.9  2356 1260 pts/8    S    09:45   0:00 ruby test.rb
mdavis    8264 99.9  9.2 15420 11800 pts/8   S    09:45   0:04 ruby test.rb
mdavis    8264 93.5 17.4 28476 22284 pts/8   S    09:45   0:08 ruby test.rb
mdavis    8264 96.7 25.6 41480 32748 pts/8   S    09:45   0:12 ruby test.rb
mdavis    8264 92.9 33.8 54488 43220 pts/8   S    09:45   0:16 ruby test.rb
mdavis    8264 95.0 41.9 67492 53692 pts/8   S    09:45   0:20 ruby test.rb
mdavis    8264 92.7 50.1 80488 64164 pts/8   S    09:45   0:25 ruby test.rb
mdavis    8264 94.2 58.3 93488 74632 pts/8   S    09:45   0:29 ruby test.rb
mdavis    8264 92.6 66.5 106488 85108 pts/8  S    09:45   0:33 ruby test.rb
mdavis    8264 93.8 74.7 119496 95588 pts/8  S    09:45   0:37 ruby test.rb
mdavis    8264 91.0 81.8 132500 104580 pts/8 S    09:45   0:41 ruby test.rb
mdavis    8264 87.1 81.3 145496 103948 pts/8 S    09:45   0:46 ruby test.rb
mdavis    8264 84.0 80.9 158492 103524 pts/8 S    09:45   0:50 ruby test.rb
mdavis    8264 84.0 82.4 171496 105408 pts/8 S    09:45   0:54 ruby test.rb
mdavis    8264 81.8 81.8 184496 104660 pts/8 S    09:45   0:58 ruby test.rb
mdavis    8264 81.1 81.3 197508 103968 pts/8 S    09:45   1:03 ruby test.rb
mdavis    8264 80.4 82.1 210484 104996 pts/8 S    09:45   1:07 ruby test.rb
mdavis    8264 79.8 79.8 223500 102088 pts/8 S    09:45   1:11 ruby test.rb
mdavis    8264 78.4 79.4 236504 101616 pts/8 S    09:45   1:16 ruby test.rb
mdavis    8264 78.8 81.4 249448 104112 pts/8 S    09:45   1:20 ruby test.rb
mdavis    8264 79.1 81.6 262516 104324 pts/8 S    09:45   1:24 ruby test.rb
mdavis    8264 78.1 81.4 275452 104172 pts/8 S    09:45   1:29 ruby test.rb
mdavis    8264 77.8 80.6 288508 103088 pts/8 S    09:45   1:33 ruby test.rb
mdavis    8264 77.4 82.4 301516 105388 pts/8 S    09:45   1:37 ruby test.rb
mdavis    8264 76.6 81.3 314456 103968 pts/8 S    09:45   1:41 ruby test.rb
mdavis    8264 76.3 81.6 327524 104396 pts/8 S    09:45   1:46 ruby test.rb
mdavis    8264 76.1 81.3 340460 103992 pts/8 S    09:45   1:50 ruby test.rb
mdavis    8264 75.4 81.5 353516 104244 pts/8 S    09:45   1:54 ruby test.rb
mdavis    8264 75.2 80.3 366520 102740 pts/8 S    09:45   1:58 ruby test.rb
mdavis    8264 75.1 80.7 379464 103208 pts/8 S    09:45   2:03 ruby test.rb
mdavis    8264 75.4 81.4 392464 104176 pts/8 S    09:45   2:07 ruby test.rb
mdavis    8264 75.4 81.4 405468 104160 pts/8 S    09:45   2:11 ruby test.rb
mdavis    8264 74.8 80.3 418524 102772 pts/8 S    09:45   2:16 ruby test.rb
test.rb:40:in `dump': failed to allocate memory(realloc) (fatal)
        from test.rb:40:in `test_dump'
        from test.rb:39:in `upto'
        from test.rb:39:in `test_dump'
        from test.rb:38:in `upto'
        from test.rb:38:in `test_dump'
        from test.rb:90

It appears to taper off in its use of memory but the ruby process (looking 
at it using top) still increases steadily in it use of memory until it runs 
out.

-----Original Message-----
From:	ts [SMTP:decoux@moulon.inra.fr]
Sent:	Saturday, June 09, 2001 9:14 AM
To:	ruby-talk ML
Cc:	ruby-talk@ruby-lang.org
Subject:	[ruby-talk:16361] Re: Garbage Collection?

>>>>> "M" == Michael Davis <mdavis@sevainc.com> writes:

M> I have narrowed the issue down a little further.  It appears to be 
related
M> to Marshal.dump() and/or the << method, the += method does not eat 
memory.

pigeon% cat b.rb
#!/usr/bin/ruby
def test_str_cat(count)
   a = ''
   0.upto(count) do |i|
      system("ps aux | grep b.rb | grep -v grep") if i % 10 == 1
      0.upto(99999) do |i|
         a << 'aaaa'
      end
      a = ''
      GC.start
   end
end

system("ps aux | head -1")
test_str_cat(200)
system("ps aux | grep b.rb | grep -v grep")

pigeon%

pigeon% b.rb
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
ts       25282 50.0  0.5  2476 1308 pts/0    S    17:08   0:00 ruby ./b.rb
ts       25282 99.9  0.5  2476 1308 pts/0    S    17:08   0:05 ruby ./b.rb
ts       25282 99.9  0.5  2476 1308 pts/0    S    17:08   0:10 ruby ./b.rb
ts       25282 99.9  0.5  2476 1308 pts/0    S    17:08   0:15 ruby ./b.rb
ts       25282 99.5  0.5  2476 1308 pts/0    S    17:08   0:19 ruby ./b.rb
ts       25282 99.0  0.5  2476 1308 pts/0    S    17:08   0:24 ruby ./b.rb
ts       25282 98.7  0.5  2476 1308 pts/0    S    17:08   0:29 ruby ./b.rb
ts       25282 98.4  0.5  2476 1308 pts/0    S    17:08   0:34 ruby ./b.rb
ts       25282 98.3  0.5  2476 1308 pts/0    S    17:08   0:39 ruby ./b.rb
ts       25282 98.1  0.5  2476 1308 pts/0    S    17:08   0:44 ruby ./b.rb
ts       25282 98.0  0.5  2476 1308 pts/0    S    17:08   0:49 ruby ./b.rb
ts       25282 97.9  0.5  2476 1308 pts/0    S    17:08   0:53 ruby ./b.rb
ts       25282 97.8  0.5  2476 1308 pts/0    S    17:08   0:58 ruby ./b.rb
ts       25282 97.8  0.5  2476 1308 pts/0    S    17:08   1:03 ruby ./b.rb
ts       25282 97.7  0.5  2476 1308 pts/0    S    17:08   1:08 ruby ./b.rb
ts       25282 97.7  0.5  2476 1308 pts/0    S    17:08   1:13 ruby ./b.rb
ts       25282 97.6  0.5  2476 1308 pts/0    S    17:08   1:18 ruby ./b.rb
ts       25282 97.6  0.5  2476 1308 pts/0    S    17:08   1:22 ruby ./b.rb
ts       25282 97.5  0.5  2476 1308 pts/0    S    17:08   1:27 ruby ./b.rb
ts       25282 97.5  0.5  2476 1308 pts/0    S    17:08   1:32 ruby ./b.rb
ts       25282 97.5  0.5  2476 1308 pts/0    S    17:08   1:37 ruby ./b.rb
pigeon%

M>  I wonder if it could be an issue with realloc not interacting properly
M> with garbage collection.  Any suggestions?

 What is your OS ?

Guy Decoux




In This Thread

Prev Next