From: kjana@... (YANAGAWA Kazuhisa) Date: 2000-12-26T21:30:42+09:00 Subject: [ruby-list:26872] Re: fork problem? In message <200012260642.PAA24123@cafe.muraoka.info.waseda.ac.jp> shudoh@muraoka.info.waseda.ac.jp writes: > > よかったら勉強させてください。性能?その性能は、Rubyでも効きます? > > 性能は、アプリケーションの性質に依る、としか言えないと思います。 > > 例えば、何か巨大なデータを引数に遠隔呼び出しする場合を考えます。 > コピーを渡すとなると、呼び出しの時点で巨大データを全部転送してしまいますが、 > 参照だけ渡すなら、通信量はごく僅かで済むでしょう。 > しかし、呼び出し先でそのデータに頻繁にアクセスする場合、 > 参照しか渡していないとアクセスの度に通信が起きて、 > 性能的に悲しいことになります。 まさに,「ものによる」んですよね. immutable なオブジェクトならそれぞれのノードにコピーしてしまっても 問題が起こることはないし,多くのアクセスがある場合には距離がちぢま るうえに帯域は広がるから性能的に有利. というのはだいたい確かだといえる.でも, mutable なオブジェクトの場合,コピー同士の一貫性を保つためのコスト が大きくなる.....まさか,一つのメソッドコールで使われてたら他では 一切使えない,っていう仕様にするわけにもいかないだろう. という大問題があったりして.そもそもどれだけの一貫性を提供するのか,と いう話もある. 書き換えるノードが一つだけだったらそこを「オーナー」として,複製を持つ ノードに書き換えを通知してまわるのがいいかも知れない.でも書き換えをす るノードがたくさんあったらどうしよう.一切複製を作らせないほうが簡単に 実装はできるけど,それはきっと性能を犠牲にしている. naming/lookup,replication/caching,calling semantics と.もうちょっ と何かあったかな.... immigration? # Distributed Operating Systems は良い本だった.中身をほとんど覚えてな # いのが問題なんだなぁ :-P 上のは分散共有メモリの話とプロセス/スレッド # 関連の話が混ざってます. -- 柳川和久 @ 東大阪市 . 大阪府 December 26, 2000 「なんで一本道で迷うことがある?」「人間やればなんだってできるんだ!!」