人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のソースで,処理CPU負荷を下げるのはどうしたらいいでしょうか?
sleep()をはずすとクライアント側がCPU負荷が少なくなり、
サーバ側がCPU負荷が高くなります。
はずさないと逆です。
理想は、<body onload="setInterval('aa()',100);">で指定している
時間で実行したいです。sleep()をいれてしまうと5秒後にリロードされてます。
ソースファイルは;
http://maruta-gr.co.jp/test/cpu/bb.html.txt
になります。
ちなみに、startEvent('test','test1','test1','2')の部分は
どんどん追加書きをしていきます。
startEvent('test','test3','test3','2')
startEvent('test','test4','test4','2')
など、特に上限はありません。




●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:CPU test クライアント サーバ ソース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● じゃっくそにっく
●35ポイント

?まず、

1秒毎の呼び出しの場合は、

setInterval()で指定する時間は100ではなく1000です。

これは修正したほうがよいです。

ミリ秒=1/1000秒で、

100ミリ秒=0.1秒

1000ミリ秒=1秒

のため。

0.1秒ごとにsleep(100)を呼び出すとクライアントのCPU負荷は

当然高まり、10倍以上の負荷になります。

?また、質問文のソースのsleep関数は、

負荷をかけるループを使った方式になっているので、クライアントの負荷を下げるためには、値を非常に小さくするか、

外したほうがいいです。

サーバ側では特に何か処理をしていますか?

また、marqueeのための処理ということですが、

実際に使うときの記述方法と位置など、

もう少し詳しく情報をください。

◎質問者からの返答

サーバー側は、今回サンプルにあげてある

var test2_val = "33";

などの33部分がHTML_AJAXで値を取りにいくように

なっています。

HTML_AJAX部分のソースも書いての

アップをしました。

http://maruta-gr.co.jp/test/cpu/bb2.html.txt

これでもまだaaという文字列は固まりますね。


2 ● じゃっくそにっく
●35ポイント

Ajax入りのソースを見たのですが、

ディスパッチャの生成時にcallback関数が設定されておらず、

mode=syncになっていますが、

非同期通信ではなく同期通信をするのでしょうか?

サーバからの値の取得・設定をしてdivを書き換えるだけの場合、

callback関数を設定して非同期通信を行うほうがよいような

気がするのですが、、

サーバからの値の取得・設定が終わったタイミングで

ajaxにdivの書き換えを行うcallback関数を呼んでもらう

といったような

◎質問者からの返答

非同期通信で行いたいです。

これはどうしたらいいのでしょうか?

サーバー側のPHPファイルでの設定が必要ですか?

もしくは

test1: function() { return this.dispatcher.doCall('test1',arguments); },を

test1: function(callback) { return this.dispatcher.doCall('test1',arguments); },

とかにしたら非同期になるんでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ