2010年09月01日
極端に重い処理をJavaScriptに投げると・・
llSetPrimMediaParams()(ビューワー2専用)のパラメーターを見ていて今更気づきました。(笑
URLの代わりに1KBまで限定で、document.write()と同じことが出来るんですね。。^^;
外部URLのJavaScriptの実行は普通にしているようで、各ユーザーのパソコン上での実行のようです。ということは、スクリプトのソースが流出することを覚悟するなら、計算が極端に速くできるという事だと思いましたので、実際にやってみました。
んー。最大の難点は方法ではなくて、ビューワー2を使っている人がどのくらいいるか、ですね。。
URLの代わりに1KBまで限定で、document.write()と同じことが出来るんですね。。^^;
外部URLのJavaScriptの実行は普通にしているようで、各ユーザーのパソコン上での実行のようです。ということは、スクリプトのソースが流出することを覚悟するなら、計算が極端に速くできるという事だと思いましたので、実際にやってみました。
元状態:LSLで全てしている場合の速度(黒棒が生えたら終了)
改造後:多倍長計算をプリムメディア(ブラウザ)に投げた場合
スクリプトはlslのものを関数名や制御構造をJavaScriptのそれに変えた(jumpが無いとか)だけで、中身は同じですが、思ったとおり劇的な速度向上が得られます。
なお、JavaScriptファイルを外部サーバーにおくと、ユーザーブラウザがサーバーにアクセスしたときに少なくとも元データーとIPは(私に)抜かれてしまいますし、私が外部サーバーを閉じてしまう(破産したとか。。^^;)と全ユーザーで一斉に動かなくなってしまいますので、外部サーバーへのアクセスを排除する為にhttp-inでプリムをWEBサーバーにして、JavaScriptソースをstringとして持っていてGET要求があるとそれを返すようにしてあります。(クラウドをもてはやす評論家って、一体何を考えているんでしょうね。。常々疑問です。。)
計算結果はXMLHttpRequestでPOSTで送り返すようにしましたが、2Kを超えるbodyは切られてしまうため、結果のサイズをブラウザ側で調べて、分割して分けて送り返すようにしました。この動画の場合、結果転送の待ち時間で3秒程度かかっていて、これにllSetPrimMediaParams()の1秒のスクリプト停止があります。
んー。最大の難点は方法ではなくて、ビューワー2を使っている人がどのくらいいるか、ですね。。
Posted by RBK Drachnyd(しお) at 15:37│Comments(2)
│作成物/製品
Comments
Posted by Whitfield-in-world at 2010年09月07日 12:38
>Whitfield-in-worldさま
いらっしゃいませ。(;_;/
ツール類を考えるのが好きなもので(^^;、気づいて即座に実験でした。(そもそも気づくのが遅いのですが。。(笑))
いらっしゃいませ。(;_;/
ツール類を考えるのが好きなもので(^^;、気づいて即座に実験でした。(そもそも気づくのが遅いのですが。。(笑))
Posted by RBK at 2010年09月21日 22:31
とても興味深い実験ですね。
できることはあたまで理解していましたが、その結果をみるとすごい^^;
ありがとうございます。