[#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:18428] Re: shrink memory
From:
matz@... (Yukihiro Matsumoto)
Date:
2002-10-02 04:53:59 UTC
List:
ruby-dev #18428
まつもと ゆきひろです
In message "[ruby-dev:18427] shrink memory"
on 02/10/02, nagai@ai.kyutech.ac.jp <nagai@ai.kyutech.ac.jp> writes:
|一つには TkcItem#delete において,管理用のハッシュからの情報削除の際,
|nil を代入するようにしていたという bug が原因でした.
|
|# これは Hash#delete を使わないといけないですよね.
|# 手が空いている方がありましたら,修正して commit していただけると
|# 助かります.
了解です。あやしいところを一括で修正しました。
まず1.7.3でコミットしますので、まずいところがあればどなたか
指摘してください。修正を添付しておきます。
|ですが,これを修正しても,Ruby は多量のメモリを占有したままです.
|ご存知の方はご存じの通りの体調ですので,
|きちんとした問題追跡やデバッグは行っていないのですが,
|結局のところ,ウィジェットパスとオブジェクトとの対応を
|管理するハッシュが一時的に肥大化して大量のメモリを要求し,
|それが不要 ( 管理ハッシュがほぼ空 ) になっても
|Ruby がそのメモリを確保したままになっているということのようです.
|
|例えば irb などで
|-------------------------------------
|h = {}
|(1..1000000).each{|i| h[i] = i}
|(1..1000000).each{|i| h.delete(i)}
|h = nil
|GC.start
|-------------------------------------
|などとやっても 24MB ほどのメモリを確保したままとなります.
|
|で,本題なのですが,「当面はこれ以上のメモリは必要としないよ」
|という状況で,余っているメモリを解放する手段を提供するというのは
|難しいでしょうか.
|もちろん自動でというのは効率上も無理でしょうから,
|スクリプトからの手動の要求によってという話です.
|
|「一時的なりともそれだけを必要とするんだから仕方がない」というのも
|事実だとは思いますが,長期間稼働するアプリケーションで
|一時的に作業に多量のメモリを必要とするというケースを考えると
|メモリ解放手段が用意されていると嬉しいと思うのですが.
えーと、おそらくはご存じだと思うのですが、Cには方法でOSにメ
モリを返す移植性のある方法がありません。UNIXならbrkを使えば
返せないことはないですが(でもbrkはPOSIXにない)、mallocが管理
している領域には手が出せません。
ということで、これをなんとかする方法は私には思いつかないので
す。使われているオブジェクトが全部回収されたヒープをfree()す
るくらいならできそうには思うのですが。これもプロセスサイズを
小さくするとは限りませんよね。
まつもと ゆきひろ /:|)
Attachments (1)
tk.patch
(2.78 KB, text/x-diff)
--- tk.rb 2002/09/12 06:27:15 1.34
+++ tk.rb 2002/10/02 04:49:07
@@ -266,3 +266,3 @@
id = $1 if /rb_out (c\d+)/ =~ id
- Tk_CMDTBL[id] = nil
+ Tk_CMDTBL.delete(id)
end
@@ -284,3 +284,3 @@
def uninstall_win()
- Tk_WINDOWS[@path] = nil
+ Tk_WINDOWS.delete(@path)
end
@@ -2190,3 +2190,3 @@
SAFE_MODE = #{safe}
- %w(#{func_str}).each{|f| METHOD_TBL[f.intern] = nil }
+ %w(#{func_str}).each{|f| METHOD_TBL.delete(f.intern) }
end
--- tkafter.rb 2002/06/04 07:03:33 1.5
+++ tkafter.rb 2002/10/02 04:49:07
@@ -66,3 +66,3 @@
if @running == false || @proc_max == 0 || @do_loop == 0
- Tk_CBTBL[@id] = nil ;# for GC
+ Tk_CBTBL.delete(@id) ;# for GC
@running = false
@@ -74,3 +74,3 @@
else
- Tk_CBTBL[@id] = nil ;# for GC
+ Tk_CBTBL.delete(@id) ;# for GC
@running = false
@@ -274,3 +274,3 @@
@after_id = nil
- Tk_CBTBL[@id] = nil ;# for GC
+ Tk_CBTBL.delete(@id) ;# for GC
self
--- tkcanvas.rb 2002/06/28 14:40:25 1.15
+++ tkcanvas.rb 2002/10/02 04:49:07
@@ -506,3 +506,3 @@
@c.delete @id
- CTagID_TBL[@cpath][@id] = nil if CTagID_TBL[@cpath]
+ CTagID_TBL[@cpath].delete(@id) if CTagID_TBL[@cpath]
end
@@ -690,3 +690,3 @@
@c.delete @id
- CItemID_TBL[@path][@id] = nil if CItemID_TBL[@path]
+ CItemID_TBL[@path].delete(@id) if CItemID_TBL[@path]
end
@@ -765,3 +765,3 @@
def delete
- Tk_IMGTBL[@id] = nil if @id
+ Tk_IMGTBL.delete(@id) if @id
tk_call('image', 'delete', @path)
--- tkfont.rb 2002/06/04 07:03:33 1.11
+++ tkfont.rb 2002/10/02 04:49:07
@@ -566,3 +566,3 @@
def delete_core_tk4x
- Tk_FontNameTBL[@id] = nil
+ Tk_FontNameTBL.delete(@id)
Tk_FontUseTBL.delete_if{|key,value| value == self}
@@ -583,3 +583,3 @@
end
- Tk_FontNameTBL[@id] = nil
+ Tk_FontNameTBL.delete(@id)
Tk_FontUseTBL.delete_if{|key,value| value == self}
@@ -612,3 +612,3 @@
rescue
- Tk_FontUseTBL[w] = nil
+ Tk_FontUseTBL.delete(w)
end
@@ -646,3 +646,3 @@
rescue
- Tk_FontUseTBL[w] = nil
+ Tk_FontUseTBL.delete(w)
end
--- tktext.rb 2002/06/28 14:40:25 1.20
+++ tktext.rb 2002/10/02 04:49:07
@@ -687,3 +687,3 @@
tk_call @t.path, 'tag', 'delete', @id
- TTagID_TBL[@tpath][@id] = nil if CTagID_TBL[@tpath]
+ TTagID_TBL[@tpath].delete(@id) if CTagID_TBL[@tpath]
end
--- tkvirtevent.rb 2001/05/06 15:04:27 1.4
+++ tkvirtevent.rb 2002/10/02 04:49:07
@@ -56,3 +56,3 @@
tk_call('event', 'delete', "<#{@id}>")
- TkVirtualEventTBL[@id] = nil
+ TkVirtualEventTBL.delete(@id)
else
@@ -60,3 +60,3 @@
*(sequences.collect{|seq| "<#{tk_event_sequence(seq)}>"}) )
- TkVirtualEventTBL[@id] = nil if info == []
+ TkVirtualEventTBL.delete(@id) if info == []
end