[#34204] 「プログラミング Ruby 」 p.257 defined? はメソッド? — Noritsugu Nakamura <nnakamur@...>

15 messages 2002/03/05
[#34205] Re: 「プログラミング Ruby 」 p.257 defined? はメソッド? — nobu.nakada@... 2002/03/05

なかだです。

[#34244] しぶらぐっ議事録。 — rubiben <ozaki@...>

48 messages 2002/03/08
[#34250] Re: しぶらぐっ議事録。 — Minero Aoki <aamine@...> 2002/03/09

あおきです。

[#34246] Re: しぶらぐっ議事録。 — rubikitch <rubikitch@...> 2002/03/08

From: rubiben <ozaki@ruby-lang.org>

[#34448] 文字コード混在スクリプトの実行 — Noritsugu Nakamura <nnakamur@...>

14 messages 2002/03/16

[#34453] カレンダー文字列を作るメソッド — Take_tk <ggb03124@...>

たけ(tk)です。

13 messages 2002/03/16

[#34534] スクリプティング言語における GPL — Taku Nakajima <tnakajima@...>

中島@ブレーンです。

26 messages 2002/03/21

[#34552] Re: 1.7 に関して — "井上 浩一" <kyoui32@...>

井上です。

22 messages 2002/03/22
[#34556] Re: 1.7 に関して — "U.Nakamura" <usa@...> 2002/03/22

こんにちは、なかむら(う)です。

[#34590] Ruby FAQ (Re: 1.7 に関して) — TAKAHASHI Masayoshi <maki@...> 2002/03/22

高橋征義です。

[#34570] cgi.rb+ イテレータ — FUJIOKA Takeyuki <fujioka@...>

藤岡です。

15 messages 2002/03/22

[#34676] 安心できる Marshal と、 Ruby バージョンの検査法 — MALTA Koji <malta@...>

丸田と申します。

62 messages 2002/03/30
[#34678] Re: 安心できる Marshal と、 Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/03/31

新井です。

[#34682] Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/03/31

丸田です。 MarshalとRUBY_VERSIONの話題を分離します。

[#34694] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34695] Re: Ruby バージョンの検査法 — shukaku@... 2002/04/01

At Mon, 1 Apr 2002 16:06:23 +0900,

[#34697] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34714] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/01

丸田です。

[#34719] Re: Ruby バージョンの検査法 — HIDAKA Takahiro <cv8t-hdk@...> 2002/04/02

 ひだかです。

[#34738] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/02

丸田です。

[#34743] Re: Ruby バージョンの検査法 — matz@... (Yukihiro Matsumoto) 2002/04/02

まつもと ゆきひろです

[#34748] Re: Ruby バージョンの検査法 — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/04/03

なひです。

[#34760] Re: Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/04/03

新井です。

[#34765] Re: Ruby バージョンの検査法 — "U.Nakamura" <usa@...> 2002/04/04

こんにちは、なかむら(う)です。

[#34776] Re: Ruby バージョンの検査法 — Tanaka Akira <akr@...17n.org> 2002/04/04

In article <20020404095542.7155.USA@osb.att.ne.jp>,

[#34681] 書籍に関する質問です — Nobuhide Kanagawa <nobuhide@...>

こんにちわ。

17 messages 2002/03/31

[ruby-list:34163] Re: Ruby1.6.7 について

From: TAKAHASHI Masayoshi <maki@...>
Date: 2002-03-02 15:49:35 UTC
List: ruby-list #34163
高橋征義です。

mswin32版そのものは詳しくないのですが。

"井上 浩一" <kyoui32@hotmail.com> wrote:
> 最適化について、以下の疑問があります。
(略)
> 4) 開発版を使う 1.7とうものがあるらしいのですが・・・mswin32でも使えるので
> しょうか?

なかむら(う)さんのところ
http://www.dm4lab.to/~usa/ruby/
に、1.7.2をコンパイルしたものがあります。


> Rubyの高速化について
> Rubyはメソッド検索に時間がかかる使命を持っているようですが、
> インラインメソッドというスピード特別区域を設けて、
> 
> inline("x86"){ |x, y, z|
>   mov ax, x
>   mov bx, y
>   mov z, ax
> }
> 
> が動作するようになれば、高速化間違いなしですが、無謀でしょうか?

えーと。
まず、(高速化とはやや異なりますが)最適化の原則は理解されてますか?

「最適化の第1の原則は、**最適化するな**だ。」
    Brian W.Kernighan and Rob Pike,『プログラミング作法』,p227
    (原文の強調は太字)

さらに、まつもとさんの言葉も。

「いくらRubyが開発効率が高い素晴らしい言語からと言って、なにも
世の中のすべてのプログラムをRubyで記述する必要はさらさらあり
ません。実行速度が必要な場合にはCのようなコンパイラ型の言語を
使うべきでしょう。プログラミング言語にも適材適所が必要です。
無理はいけません、無理は。」
    まつもと ゆきひろ/石塚圭樹,
    『オブジェクト指向スクリプト言語Ruby』,p427

この手の質問で理想的なものとしては、「〜というコードを
書いているんだけど妙に遅いです。どうしてでしょう?」とか、
「〜というコードがありますが、○○だと早いんですけど××だと
極端に遅くなります。」というたぐいのものですね(シンプルな
再現コード、プロファイラの結果の抜粋なんかがあると理想的で、
さくっと返事が返ってきたりしそうです :-) )。
井上さんの求めているものは、このたぐいの質問ではなく、まさに
Kernighan and Pikeや、まつもとさんが戒めているタイプのものの
ように見受けられます。
実際、 [ruby-list:34139] で井上さんは「特にRubyで遅いなと思う
のは、requireの部分で実行処理の3分1を占めています。」と
書いていて、今回の話とは全然違うようですし。
[ruby-list:34141]の斉藤さんのリプライは理解・納得されてますか?

# あと、Rubyはメソッド検索はキャッシュを使って高速化を計って
# いるのでは? (eval.cのrb_callの部分)
# また、インラインメソッドを使ってもメソッド検索の速度の
# 改善とは関係がないのでは?


もっとも、上のまつもとさんの言葉は拡張ライブラリの話をする
ための前振りになっています。「高速化したい部分は拡張ライ
ブラリで書く」というのはRubyでもすでに実績を重ねている
手法で、井上さんの求めている手法も、これで実現できそう
です。拡張ライブラリのCのコードの中でアセンブラを使えば
いいわけですから。

とはいえ、やみくもに高速化を図るべきではないでしょう。ちゃんと
プロファイリングして、ボトルネックを見つけ、そこに焦点を絞って
高速化するべきです(と、上の引用元2冊の両方に書いてあります :-))。

高橋征義 (TAKAHASHI Masayoshi)   E-mail: maki@rubycolor.org

In This Thread

Prev Next