Project

General

Profile

Bug #13089

Updated by nobu (Nobuyoshi Nakada) almost 8 years ago

 きしもとです 

 
 
  手元の環境で、最新版(r57227 の変更以降)で、以下のような 
 
  スクリプトを実行しながら、topコマンドでインタプリタのプロセスを 
 
  見ていると、リークがあるようで、SIZE, RES がじりじりと増えて 
 
  ゆきます。 

 ```ruby 
 
 
  # fdiv_leak_sample 

 
 
  A = 0x4000_0000_0000_0000 
 
  B = 0x4000_0000_0000_0000 

 
 
  def f 
   
  A.fdiv B 
 
  end 

 
 
  t = true 

 
 
  while t do 
   
  f 
   
  GC.start 
 
  end 
 ``` 

 
 
  r57227 は、計算前に約分するので、私が現在コードを書いている 
 
  変更とは相互に影響しないのですが(bignumの変更についても、 
 
  さきほどGitHubのほうにpushしました)、情報を失わないような 
 
  左シフトだけを使って実装することで、浮動小数点リテラルの 
 
  特異な場合(次を参照)、 
 
  ( https://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3A%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0%E3%82%92%E3%81%A9%E3%81%93%E3%81%BE%E3%81%A7%E8%AA%AD%E3%82%80%E3%81%8B ) 
 
  に対処する、というような応用にも使えるように改良することを 
 
  意図した改造を作業中なのですが、反対とかありますでしょうか? 
 
  (大きい数になるので、除算コストが大きい、というのは 
 
  あるかもしれません) 

Back