[#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:18609] Re: new scope-in-state [Re: import-module (Re: Re: scope-in-state)]
From:
Shin-ichiro HARA <sinara@...>
Date:
2002-10-30 07:11:49 UTC
List:
ruby-dev #18609
原です。
>>import-module もアイデアのいただける所はいただいて、スピードアップ
>>したいのですが、明日からしばらく南の島でコンピュータの無い生活を送
>>らなければならないのが残念です。(^^;
お久しぶりです。南の島から戻りました。体はずいぶん前から戻ってますが、
頭の方も徐々に戻しています。
例の scope-in-state, import-module 問題の続きです。
In [ruby-dev:18082]
>At 23:20 02/08/26 +0900, you wrote:
>けいじゅ@日本ラショナルソフトウェアです.
>>>multi thread(1000000 loops in a scope) : 11.0412
>>>scope in state(1000000 loops in a scope): 6.6583
新たに import-module Ver.0.74 別名、import-module turbo:-) というのを
作ってみました。結果は次の通り (ruby 1.6.7 (2002-07-11)[i386-cygwin]
Windows2000):
$ ./test times 10 m c L 1000000
scope-in-state (1000000 loops in a scope) : 4.7907 (1.0000)
import-module (1000000 loops in a scope) : 5.0576 (1.0557)
つまり、scope-in-state の 5% 以内に迫っています。この "loops in a scope"
(以下 LOOPS と略)っていうのは、
Foo.import_module(Bar) do
1000000.times do
o.foo
end
end
こういう感じの計測でしたね。で、何が turbo かというと、こっちです。
$ ./test times 10 m c S 100000
import-module (scopes in 100000 loops) : 7.9654 (1.0000)
scope-in-state (scopes in 100000 loops) : 11.2032 (1.4065)
ここで、"scopes in loops"(以下 SCOPES と略)というのは、
100000.times do
Foo.import_module(Bar) do
o.foo
end
end
でした。これって import-module の初期バージョンに対して 200 倍ぐらいの
スピードになったんですよ。turbo でしょう。
中身ですが、scope-in-state を大分参考にしました(っていうか独立に作っ
たつもりが、最終的にはそっくり)。scope-in-state は、実に細かいオプティ
マイズがされてて、驚きました。私もプロファイラと睨めっこしたんですが、
どうしても速くならない。最終的にはやはり *arg の展開のところがネックだっ
たと気づいたのですが、この展開の所は、標準の profile.rb では出力されま
せんよね、、、
>で実体を呼び出していたのですが, プロファイラを見て調べてみると, *argで
>受けるところで配列が生成されるので, そこで呼び出しコストが発生していた
>みたいで,
ということは、石塚さんの使ってるプロファイラは何なのかな?
ところで、 import-module が行っているのは、scope-in-state の(勝手に命
名させてもらうと)「代理継承列法」のパクリの、Hash による(今、命名し
た)「擬代理継承列法」です。ついでに、import-module-pip.rb という代理
継承列法バージョンも作ってみました。LOOPS の結果:
$ ./test times 10 p c L 1000000
import-module-pip (1000000 loops in a scope) : 4.5838 (1.0000)
scope-in-state (1000000 loops in a scope) : 4.7934 (1.0457)
import-module-pip の方が 4% ぐらい速い種明かしをすると、パラメータの受
け渡しで、*arg -> *arg -> *arg -> *arg と送るより *arg -> arg -> arg
-> *arg の方が早いように、ブロックも &b -> &b -> &b -> &b より、&b ->
b -> b -> &b とした方が速かったんです。因みに SCOPES の方は
$ ./test times 10 p c S 100000
scope-in-state (scopes in 100000 loops) : 11.1864 (1.0000)
import-module-pip (scopes in 100000 loops) : 13.4977 (1.2066)
です。import-module-pip が 20% 近く遅いのは、ちょっと差がありすぎのよ
うな気がするんですが、もしかすると次のような scope-in-state の仕様のせ
いかもしれません。
-----------------------------
require "scope-in-state"
class Foo
def foo; p "Foo"; end
end
module S
module Foo
def foo; p "S"; end
end
end
module T
module Foo
def foo; p "T"; end
end
end
ScopeS = ScopeInState.new(S)
ScopeT = ScopeInState.new(T)
foo = Foo.new
ScopeS.scope_in do
ScopeT.scope_in do
ScopeS.scope_in do
foo.foo # -> "T" ??
end
end
end
-----------------------------
?? が "S" でないのは、モジュールが一つの(代理)継承列で一回しか include
できないせいなので、直接メソッド定義を eval すればいいと思います。そうす
ると SCOPES の差は縮まる気がするのですが、実際はわかりません。
single thread バージョンの方も、必要性の低い堅牢さを捨てたら、初期バー
ジョンより SCOPES で、500 倍ぐらい速くなりました。
$ ./test times 10 s c S 100000
scope-in-state (scopes in 100000 loops) : 11.6216 (1.0000)
import-module-single-thread (scopes in 100000 loops) : 13.4670 (1.1588)
もちろん、import-module-single-thread の LOOPS の方はもともと限界まで
行ってるので今まで通りです。
と、さんざんこねくり回しておいて、いまさらこんなこと言うのも何なんです
が、最初コンセプトの話だったはずがいつのまにか実装のでのスピード競争み
たいになってしまって、これがどのぐらい意味があるかちょっと疑問ですね。
そもそも LOOPS と SCOPES という2つテストが極端すぎて適切でない、とい
うか、もっと別のケースも考慮すべきですよね。特に LOOPS の方は、OS や
CPU によってもずいぶん結果が違うし、実は import-module.rb,
import-module-pip.rb には、決して使われない関数が定義されているのです
が、それを削るとなぜか有意の差で遅くなるんです。ファイル名を変えても差
がでる。これはもう異常な世界です(^^;。
さしあたって、かなり実用性あるものができたのは良かったかな。