[#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:592] Re: optimize (Re: Assigne to special variable)
From:
"EGUCHI Osamu" <eguchi@...>
Date:
1997-09-30 06:41:39 UTC
List:
ruby-dev #592
えぐち です。
----------
> 差出人 : Yukihiro Matsumoto <matz@netlab.co.jp>
> 件名 : [ruby-dev:588] Re: optimize (Re: Assigne to special variable)
>
> まつもと ゆきひろです
>
> In message "[ruby-dev:586] Re: optimize (Re: Assigne to special
variable)"
> on 97/09/30, Yukihiro Matsumoto <matz@netlab.co.jp> writes:
>
> |まつもと ゆきひろです
>
> ||> それとキーワード判定ってそんなに重くないような気がするんです
> ||> けど.重くなければ複雑になるだけですよね.
> ||
> ||ところが、yylex の実行時間の殆どは2分探査が占めてました。
> ||で yylex は、全体のいくらかというと、、ベストテン圏内に登場することも
> ||まずらしくないようです。(みぢかいスクリプトではあれですが、)
> |
> |そうか,それは考えた方が良いかも.
>
> うちにも gperf がインストールしてあったので,ちょっと使って
> 見ました,なかなか面白いですね.
gperf は、gcc 自身の生成に必要なので gcc の走るプラットホームには
よくインストールされています。
2分探査は高速なアルゴリズムですが、さすがに完全ハッシュの方が
速いですし、レイテンシーがフラットなのがいいです。
> でも,手元にある900行くらいのスクリプトでは有意な差は出なかっ
> たんですねえ.確かに速くなっているようなんですけど,せいぜい
> 数ミリ秒くらいでした.今後の使い勝手などを考えると変更する価
> 値があるのだろうか,という感じでしたね.もうちょっと検討して
> みましょう.
じつは、自分のパッチでは if/unless/while/until の例外を表駆動に
変更したのでそれも効いているです。一遍にやってので分離したデータを
持ってないです。^^;
> ところで,えぐちさんのお使いのプロファイラやカバレージツールっ
> てなんなんでしょう? すごく正確な値が出てるみたいですけど.
プロファイラは、FreeBSD の /usr/bin/gprof です。
env CFLAGS='-pg -O2' ./configure
な ruby を走らすだけです。
sunos では GNU-gprof です。基本的に同じですけど。
カバレジテスタは、 gcov です、*次の* リリースの gcc に含まれます。
pgcc とか egcs という gccの改造をしているプロジェクトの
中間成果に含まれています。
env CC=gcc-test CFLAGS='-fprofile-arcs -ftest-coverage' \
./configure
ってかんじです。
こんなもの取れます。
---
static VALUE
rb_eval(self, node)
VALUE self;
NODE * volatile node;
{
129541 NODE *state;
129541 volatile VALUE result = Qnil;
#define RETURN(v) { result = (v); goto finish; }
again:
142971 if (!node) RETURN(Qnil);
#if 0
sourceline = nd_line(node);
sourcefile = node->file;
#endif
142736 switch (nd_type(node)) {
553 case NODE_BLOCK:
553 while (node) {
2118 result = rb_eval(self, node->nd_head);
1922 node = node->nd_next;
1922 }
357 break;
/* begin .. end without clauses */
case NODE_BEGIN:
###### node = node->nd_body;
###### goto again;
---
あと SunOS の tcov でも同じように測れると思います。
ruby は幸い KnR1 でかかれているので古き良き SunCC でも
コンパイルできるので tcov もOKでしょう。
(SunOS4 自体が絶滅しなければいいんですが、because I love BSD!! )
#
ruby にスクリプトのプロファイルやカバレジテストの機能を
付けようと一瞬思ったのですが、 thread でめげました。
えぐち