[#42243] コミュニティと宗教の分離について — Beyond <beyond@...>

14 messages 2006/05/21

[#42267] メニューのループについて — リックス <rubyer4649@...>

りっくすです

21 messages 2006/05/27

[#42301] Re: メニューのループについて — "conundrum /" <conundrum@...>

conundrumです。

11 messages 2006/05/28

[ruby-list:42335] ディレクトリーを再帰下降していくスクリプトでNoMemoryErrorエラー

From: 岩崎 弘孝 <IH000667@...>
Date: 2006-05-30 06:32:50 UTC
List: ruby-list #42335
岩崎と申します。

ディレクトリーを再帰下降していくスクリプトで以下のようなエラーが発生しました。
これに関して質問がありますので宜しくお願いします。

環境は以下のとおりです。
   OS:W2K SP4
   ruby 1.8.4 (2005-12-24) [i386-mswin32]

エラーメッセージの抜粋は以下のとおりです。

>u:\ih000667\bin/dirtree.rb:51:in `pwd': failed to allocate memory (NoMemoryError)
>from dirtree.rb:51:in `recursive_with_header'
>(snip)
>
>from E:/DOCUME~1/ih000667/bin/tbis/REGIST~1.RB:156:in `each_with_index'
> ... 17 levels...
>from u:\ih000667\bin/dirtree.rb:38:in `recursive_with_header'

dirtree.rb(REGIST~1.RB)の骨格としては以下のようなものです。

def test(dir)
  Dir.chdir(dir) do |dir|
    ...
    test(dir)
  end
end

ローカルフォルダーにおいて、テストした場合少なくとも
24階層下までは問題なく動きました。

これをWindowsのファイルサーバ上のネットワーク共有下の
ディレクトリーを指定すると上記のエラーが発生しました。

Q1.エラーメッセージにある「...17 levels」とは何の意味ですか?
Q2.タスクマネージャで見る限り1GB程度のメモリーの空きがありますので
    NoMemoryErrorというのが腑に落ちません。

ネットワークドライブの割り当てをすると問題が回避できることは判明済みですが、
将来そのような手順をふまなくても可能になればと思い投稿しました。


== Iwasaki ==
Email: ih000667@mb.taiyokogyo.co.jp

In This Thread

Prev Next