From: SHUDO Kazuyuki Date: 2000-12-26T15:44:13+09:00 Subject: [ruby-list:26861] Re: fork problem? 首藤です。 なひさん wrote: > > 例えば、dRuby では遠隔呼び出しの引数は遠隔にコピーされるわけですが、 > > # 首藤さんはご存知かもしれませんが。 > コピーを渡すか参照を渡すかは、ユーザーが指定します。 いえ、ご存知じゃありませんで、いつもコピーが渡ると思ってました。 よく知らずに書いてしまいました。ごめんなさい。>咳さん他 > > コピーして渡す方が性能的にお得な場合が多い気がしますし。 > > セマンティクスが同一である場合のメリットのうち、 > 「開発し易い」以外のものとしては、どんなものがあるんでしょう。 遠隔呼び出しとローカル呼び出しのセマンティクスが同じ (コピーを渡すのではなくて参照を値渡しする) ことのメリットは「同じであること」に尽きるんじゃないかと思ってます。 ローカルな処理と分散処理で動作が違うと、 その違いを意識してプログラムを書かないといけないわけです。 じゃ、そういった、ネットワーク透過であること、 ネットワークを意識せずに済むこと、が常に良いことかというと、 それは時と場合と観点と思想 :) に依ります。 僕はどちらかというと、ネットワーク透過ラヴ、という人なのですが、 それでも、ネットワークの障害には対処できないとまずいから、 プログラマはネットワークの存在を強く意識すべきなんです、 という意見にもうなづかされます。 > よかったら勉強させてください。性能?その性能は、Rubyでも効きます? 性能は、アプリケーションの性質に依る、としか言えないと思います。 例えば、何か巨大なデータを引数に遠隔呼び出しする場合を考えます。 コピーを渡すとなると、呼び出しの時点で巨大データを全部転送してしまいますが、 参照だけ渡すなら、通信量はごく僅かで済むでしょう。 しかし、呼び出し先でそのデータに頻繁にアクセスする場合、 参照しか渡していないとアクセスの度に通信が起きて、 性能的に悲しいことになります。 SHUDO Kazuyuki/首藤一幸 私をたばねないで あらせいとうの花のように shudoh@muraoka.info.waseda.ac.jp