
毎秒1MBのtxtファイルを読み込み(JS XHR使用)を行いのですが、負荷や読み込み速度をなるべく軽減したいです
どのようにすればいいでしょうか?

このままだと、単なる丸投げ質問。現在どのようなコードを書いていて、どのような問題が生じていて、何をどう試して改善できずにいるのか、実際のコードをサンプルとして示してもらわないと。ところで、txtファイルの取得、読み込んで何らかの処理を1秒間のうちに完結させるっていう無茶苦茶な仕様?方針?はどこから来るんですか?
状況がわかりません
jsの非同期処理で毎秒1mずつファイルを送り続ける?
受け取ったファイルをどうしたいのでしょうか?
あまり現実的な処理だとは思えないですけど・・・
具体的に書きますと
1MBのtxtにチャットのログが保存されています
これを1秒ごとにXHRで読み込んでいます
この負荷を軽減したいです
DBは使えません
不可能な領域でしょうか?
秒間という書き方をしてしまいましたが10秒(最長)に1回リクエストを投げその間に処理したいと考えています
DB以外でノウハウをお持ちでしたら教えていただきたいです
> これを1秒ごとにXHRで読み込んでいます
この負荷を軽減したいです
そもそも、なぜそんな大量のデータをフロントに送らなければならないのでしょうか?
テキストファイルはサーバーにあるのですか?クライアント側ですか?
クライアントからXHRでファイルを送る場合はinput type=fileなどになると思いますが
そういう認識でよいですか?
そうなると秒単位でファイルの貼り付け(?)をクライアントがすることになりますが
それは現実的な運用方法とは言えないですね・・・
逆にサーバーにあるファイルをクライアントが呼びたいなら
受け取った量をクライアント側が処理しきれないような気がします
すみません
1MBを送りつけるということではありません
フラグを立ててサーバー側で処理する際に1MBの読み込みがfile_get_contentsが動くという意味です
ですので読み込みが終わり、受信する際には実際には応答し、吐き出されるものは数byteしかないものの、サーバー側では1MBに読み込み処理をするため、
XHRを投げて応答するまでファイルが大きければ大きい程応答に時間を要するという意味です
意味がわかりませんでしょうか?
XHR自体の応答の結果自体は数byteであれサーバー側が1MBの読み込み処理を行うという意味です
説明が下手ですみません
XHR 1kbyte投げる→サーバー側で1MBのtxtを読み込む→読み込んだうちの数byteを吐き出す
この流れですが、1MBをサーバーで読み込む負荷を軽減させたいです
クライアント
XHR~
formdata.append("a","a");
send()//POST
送信したら、
数byteを受信
サーバー
if($_POST["a"]!=""){
$a=file_get_contents("1MBのファイルへアクセス");
処理が続く~
echo $a;//吐き出しは1MBのファイルを読み込んだうちの数byte
}
「吐き出しは1MBのファイルを読み込んだうちの数byte」
の部分の解釈と出力が重いだけでしょう
PHPの処理が遅いからということでしょうか
どういうファイルからどういう基準でどこを切り出してどうやって出力しているか一切情報がないので判断できません。質問者さんが思っているボトルネックは実際にはたいしたことないと言うのが感想です。
もちろんファイルサイズが大きくなると受けたデータを保持するだけでメモリも消費しますので負荷は高くなりますが1M程度のデータを処理できないサーバーはそもそもなにをやっても遅いでしょう

回答2件
あなたの回答
tips
プレビュー