[#352] ruby 1.1a5 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
38 messages
1997/09/01
[#353] Re: ruby 1.1a5 released
— keiju@... (石塚圭樹 )
1997/09/01
[#354] Re: ruby 1.1a5 released
— matz@... (Yukihiro Matsumoto)
1997/09/01
まつもと ゆきひろです
[#355] methods [Re: ruby 1.1a5 released]
— keiju@... (石塚圭樹 )
1997/09/01
けいじゅ@日本ラショナルソフトウェアです.
[#356] Re: methods [Re: ruby 1.1a5 released]
— matz@... (Yukihiro Matsumoto)
1997/09/01
まつもと ゆきひろです
[#357] Re: methods [Re: ruby 1.1a5 released]
— keiju@... (Keiju ISHITSUKA)
1997/09/01
けいじゅ@日本ラショナルソフトウェアです.
[#359] Re: methods [Re: ruby 1.1a5 released]
— matz@... (Yukihiro Matsumoto)
1997/09/02
まつもと ゆきひろです
[#363] Re: methods [Re: ruby 1.1a5 released]
— matz@... (Yukihiro Matsumoto)
1997/09/02
まつもと ゆきひろです
[#374] Re: methods [Re: ruby 1.1a5 released]
— matz@... (Yukihiro Matsumoto)
1997/09/02
まつもと ゆきひろです
[#376] Re: methods [Re: ruby 1.1a5 released]
— keiju@... (Keiju ISHITSUKA)
1997/09/02
けいじゅ@日本ラショナルソフトウェアです.
[#382] Re: methods [Re: ruby 1.1a5 released]
— matz@... (Yukihiro Matsumoto)
1997/09/02
まつもと ゆきひろです
[#390] Re: methods [Re: ruby 1.1a5 released]
— keiju@... (Keiju ISHITSUKA)
1997/09/03
けいじゅ@日本ラショナルソフトウェアです.
[#391] Re: methods [Re: ruby 1.1a5 released]
— matz@... (Yukihiro Matsumoto)
1997/09/03
まつもと ゆきひろです
[#405] nesting [methods [Re: ruby 1.1a5 released]]
— keiju@... (石塚圭樹 )
1997/09/04
けいじゅ@日本ラショナルソフトウェアです.
[#406] Re: nesting [methods [Re: ruby 1.1a5 released]]
— matz@... (Yukihiro Matsumoto)
1997/09/04
まつもと ゆきひろです
[#411] Re: nesting [methods [Re: ruby 1.1a5 released]]
— keiju@... (石塚圭樹 )
1997/09/04
けいじゅ@日本ラショナルソフトウェアです.
[#358] defined? — keiju@...
けいじゅ@日本ラショナルソフトウェアです.
7 messages
1997/09/01
[#389] ruby 1.1a6 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
6 messages
1997/09/03
[#417] [BUG] *methods — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
6 messages
1997/09/04
[#418] building ext modules — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
7 messages
1997/09/05
[#431] [Q] socket on ruby(mswin32) — Masaki Suketa <suke@...>
助田です。
9 messages
1997/09/09
[#441] How to report a bug — takagi@... (TAKAGI Hiromitsu)
Bus error が出ました。
15 messages
1997/09/09
[#447] Re: How to report a bug
— matz@... (Yukihiro Matsumoto)
1997/09/10
まつもと ゆきひろです
[#461] [Q] ruby-socket(mswin32) — Masaki Suketa <suke@...>
助田です
27 messages
1997/09/11
[#462] Re: [Q] ruby-socket(mswin32)
— matz@... (Yukihiro Matsumoto)
1997/09/11
まつもと ゆきひろです
[#463] Re: [Q] ruby-socket(mswin32)
— Masaki Suketa <suke@...>
1997/09/11
助田です
[#464] Re: [Q] ruby-socket(mswin32)
— matz@... (Yukihiro Matsumoto)
1997/09/11
まつもと ゆきひろです
[#467] Re: [Q] ruby-socket(mswin32)
— WATANABE Hirofumi <watanabe@...>
1997/09/11
わたなべです.
[#468] Re: [Q] ruby-socket(mswin32)
— matz@... (Yukihiro Matsumoto)
1997/09/11
まつもと ゆきひろです
[#469] Re: [Q] ruby-socket(mswin32)
— WATANABE Hirofumi <watanabe@...>
1997/09/11
わたなべです.
[#475] Re: [Q] ruby-socket(mswin32)
— WATANABE Hirofumi <watanabe@...>
1997/09/11
わたなべです.
[#476] Re: [Q] ruby-socket(mswin32)
— Masaki Suketa <suke@...>
1997/09/12
助田です。まとめてレスします。(ちょっと長いです)
[#477] Re: [Q] ruby-socket(mswin32)
— WATANABE Hirofumi <watanabe@...>
1997/09/12
わたなべです.
[#489] [BUG] thread? — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
5 messages
1997/09/16
[#499] parser bug — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
8 messages
1997/09/18
[#501] MethodIndex — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
5 messages
1997/09/18
[#522] Re: Assigne to special variable — "EGUCHI Osamu" <eguchi@...>
えぐち です。
12 messages
1997/09/24
[#571] dbmtest.rb — Masaki Suketa <suke@...>
いまだ ruby(Perl?) のソースコード追っかけてる時間の方が長い
11 messages
1997/09/30
[#572] Re: dbmtest.rb
— WATANABE Hirofumi <watanabe@...>
1997/09/30
わたなべです.
[#573] Re: dbmtest.rb
— matz@... (Yukihiro Matsumoto)
1997/09/30
まつもと ゆきひろです
[#585] Re: optimize (Re: Assigne to special variable) — "EGUCHI Osamu" <eguchi@...>
えぐち です
4 messages
1997/09/30
[#594] BUG?(marshal) — Masaki Suketa <suke@...>
以下のプログラムを実行した時に(3)と(4)で出力結果が違います。
17 messages
1997/09/30
[#595] Re: BUG?(marshal)
— matz@... (Yukihiro Matsumoto)
1997/09/30
まつもと ゆきひろです
[#596] Re: BUG?(marshal)
— WATANABE Hirofumi <watanabe@...>
1997/09/30
わたなべです.
[#601] Re: BUG?(marshal)
— Masaki Suketa <suke@...>
1997/10/01
助田です。
[#602] Re: BUG?(marshal)
— matz@... (Yukihiro Matsumoto)
1997/10/01
まつもと ゆきひろです
[ruby-dev:536] optimize (Re: Assigne to special variable)
From:
"EGUCHI Osamu" <eguchi@...>
Date:
1997-09-26 03:42:00 UTC
List:
ruby-dev #536
えぐち です。 ---------- > > まつもと ゆきひろです > > In message "[ruby-dev:522] Re: Assigne to special variable" > on 97/09/25, "EGUCHI Osamu" <eguchi@shizuokanet.or.jp> writes: > > |えぐち です。 > > |どうも実行時に言語仕様の一部が書き換わってるような感じで > |最適化って余地が殆どないような気がします。 > |バイトコード?最適化の議論って今までされたことあるんでしょうか? > > rubyに限らないですが,動的な性質を持つ言語ではコンパイラの教 > 科書に良くあるいわゆる最適化をほとんど適用できません.最適化 > は私が学生時代所属していた研究室の重要なテーマでもありました > ので,いろいろ考えましたが,やっぱり無理のようです. > # Lispとかもそうでしょうね. その道を極めた方に言うのは、いかにも『釈迦に説法』ですが、、 elisp のバイトコードコンパイラなんか、結構すごい最適化を かけますよね、elisp に限らず common-lisp 以降の lisp の 実装は特にチューニングに関しては激しいものがあります。 でも ruby はランタイムにコンパイルするので、あまり大規模な コンパイル時のオプティマイズは結果として速度低下を招くのが つらいところです。 と言うことで、いわゆるピープホールオプティマイズと ランタイムエンジン部分のチューニングが ruby では効果的では? > rubyにおいて実行速度を改善する余地は > > * メソッドキャッシュの改善(eval.c) 中規模なアプリケーションでなら、0x200 エントリのメソッドキャッシュ でも(gcov で見ると)かなりヒットしているように思えます。 むしろエントリーを増やすより、再定義などでクリアされるない様に したいところですが、メソッドとオブジェクトの結合が動的なので ほとんど不可能に近いですね。 > * 構文木の再設計(parse.y,node.h,eval.c) これはたとえば、 obj += INTEGER を現在は OP_ASGN と INTEGER に分解してるのを OP_ASIGN_INTEGER と新しく定義した複合的な単一ノードにして、eval() のトラバースを 少なくするといった NODE 定義の拡張でしょうか? 魅力的ですが、 gc.c も NODE の解釈をしているのが大変そうですね。 他にも、 obj = obj + n のパターンから obj += n を生成するとかはオーバーホールなしに、parse.y だけで解決しそうです。 > * setjmpの削減(eval.c) > > などが考えられます.rubyでは大量にsetjmpを呼んでいるのが明ら > かですから,とくに最後のものをいつか実現しようと考えています. setjmp を使っているところを、他の仕組みで実装すると 余計遅くなりそうな気がしませんか? いまのイーバリェータってパーサに比べて手を入れる余地が あまりないような気がします。 私が Thread 関係のコードに恐れをなしている事が一番の理由なんですが、 (GC と Thread は私の理解を超えてます :-p) # それから、/RE/ のコンパイルの部分を新しい librx に差し替えると 速くなるかもしれないです。 、、今の GPL な regex をスクラッチから書き直すって ToDo にあったやうな、、 まったく別の場所では、Bignum の四則や比較といった重いところを、 「if 文の算術式化」などで、少しチューニング出来そうな気がします。 えぐち