[ruby-dev:50052] [Ruby trunk Bug#13089] r57227 の変更ではリークが起きるようです

From: nagachika00@...
Date: 2017-03-27 16:17:46 UTC
List: ruby-dev #50052
Issue #13089 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 2.2: DONE, 2.3: REQUIRED, 2.4: DONE to 2.2: DONE, 2.3: DONE, 2.4: DONE

ruby_2_3 r58173 merged revision(s) 57236.

----------------------------------------
Bug #13089: r57227 の変更ではリークが起きるようです
https://bugs.ruby-lang.org/issues/13089#change-63889

* Author: metanest (Makoto Kishimoto)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.2: DONE, 2.3: DONE, 2.4: DONE
----------------------------------------
きしもとです

手元の環境で、最新版(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 )
に対処する、というような応用にも使えるように改良することを
意図した改造を作業中なのですが、反対とかありますでしょうか?
(大きい数になるので、除算コストが大きい、というのは
あるかもしれません)




-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next