namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NMZ.*.BAK



古川です。引用前後しますが…

>> On Sun, 29 Nov 1998 11:07:07 +0900, SHIOZAKI Takehiko <takehi-s@xxxxxxxxxxx> said:
  > ところで、gcnmzってかなりメモリを食いますね。以下のような処理をするのに、
  > プロセスサイズが100Mにもなって、はらはらしてしまいました。

確かにそうですね。とりあえず、

*** nmztxt.pl.orig	Mon Nov 30 12:31:34 1998
--- nmztxt.pl	Mon Nov 30 12:30:06 1998
***************
*** 473,481 ****
  }
  
  sub readint{
-     local(*fH) = @_;
      local($_);
!     return undef unless read(*fH, $_, $IntSize);
      unpack($IntType, $_);
  }
  
--- 473,480 ----
  }
  
  sub readint{
      local($_);
!     return undef unless read($_[0], $_, $IntSize);
      unpack($IntType, $_);
  }
  
のようにすると、爆発的な膨張は防げるようです。(FreeBSD-2.2.7 + perl5.00404)


その他、不必要に local を使用している箇所が多いので、見直すべきところは、
まだまだたくさんありそうです。



  > これに関して、ちょっとしたpatchを作ってみました。ご確認願います。
  > ・NMZ.{head,field}.*を処理するときに、それらの.BAKも対象になってしまい、
  > 時間も場所も食うのを止めた。
  > ・何もしなくてよかったときは本当に何もしないようにした。

と共に、もう少し詳しく見直そうと思います。


# 考えなしに local を多用してはいけない、ということですね。

-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx