質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

360閲覧

PHP file_get_contents 1MB

valvalx

総合スコア22

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/06/28 02:08

編集2022/06/28 02:09

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/06/28 02:24

このままだと、単なる丸投げ質問。現在どのようなコードを書いていて、どのような問題が生じていて、何をどう試して改善できずにいるのか、実際のコードをサンプルとして示してもらわないと。ところで、txtファイルの取得、読み込んで何らかの処理を1秒間のうちに完結させるっていう無茶苦茶な仕様?方針?はどこから来るんですか?
yambejp

2022/06/28 02:24

状況がわかりません jsの非同期処理で毎秒1mずつファイルを送り続ける? 受け取ったファイルをどうしたいのでしょうか? あまり現実的な処理だとは思えないですけど・・・
valvalx

2022/06/28 02:30

具体的に書きますと 1MBのtxtにチャットのログが保存されています これを1秒ごとにXHRで読み込んでいます この負荷を軽減したいです DBは使えません 不可能な領域でしょうか?
valvalx

2022/06/28 02:32

秒間という書き方をしてしまいましたが10秒(最長)に1回リクエストを投げその間に処理したいと考えています
valvalx

2022/06/28 02:33

DB以外でノウハウをお持ちでしたら教えていただきたいです
maisumakun

2022/06/28 02:39

> これを1秒ごとにXHRで読み込んでいます この負荷を軽減したいです そもそも、なぜそんな大量のデータをフロントに送らなければならないのでしょうか?
yambejp

2022/06/28 02:41 編集

テキストファイルはサーバーにあるのですか?クライアント側ですか? クライアントからXHRでファイルを送る場合はinput type=fileなどになると思いますが そういう認識でよいですか? そうなると秒単位でファイルの貼り付け(?)をクライアントがすることになりますが それは現実的な運用方法とは言えないですね・・・ 逆にサーバーにあるファイルをクライアントが呼びたいなら 受け取った量をクライアント側が処理しきれないような気がします
valvalx

2022/06/28 02:46 編集

すみません 1MBを送りつけるということではありません フラグを立ててサーバー側で処理する際に1MBの読み込みがfile_get_contentsが動くという意味です ですので読み込みが終わり、受信する際には実際には応答し、吐き出されるものは数byteしかないものの、サーバー側では1MBに読み込み処理をするため、 XHRを投げて応答するまでファイルが大きければ大きい程応答に時間を要するという意味です 意味がわかりませんでしょうか? XHR自体の応答の結果自体は数byteであれサーバー側が1MBの読み込み処理を行うという意味です
valvalx

2022/06/28 02:49

説明が下手ですみません XHR 1kbyte投げる→サーバー側で1MBのtxtを読み込む→読み込んだうちの数byteを吐き出す この流れですが、1MBをサーバーで読み込む負荷を軽減させたいです
valvalx

2022/06/28 02:52

クライアント XHR~ formdata.append("a","a"); send()//POST 送信したら、 数byteを受信 サーバー if($_POST["a"]!=""){ $a=file_get_contents("1MBのファイルへアクセス"); 処理が続く~ echo $a;//吐き出しは1MBのファイルを読み込んだうちの数byte }
yambejp

2022/06/28 02:56

「吐き出しは1MBのファイルを読み込んだうちの数byte」 の部分の解釈と出力が重いだけでしょう
valvalx

2022/06/28 03:02

PHPの処理が遅いからということでしょうか
yambejp

2022/06/28 03:05

どういうファイルからどういう基準でどこを切り出してどうやって出力しているか一切情報がないので判断できません。質問者さんが思っているボトルネックは実際にはたいしたことないと言うのが感想です。 もちろんファイルサイズが大きくなると受けたデータを保持するだけでメモリも消費しますので負荷は高くなりますが1M程度のデータを処理できないサーバーはそもそもなにをやっても遅いでしょう
guest

回答2

0

ベストアンサー

同じサーバー内から通常のファイルI/Oで、読み込むだけなら大した負荷ではないでしょう。

PHP

1$start=microtime(true); 2$content=file_get_contents("sample.txt"); 3$end=microtime(true); 4print $end - $start;

私の環境でためしたところ0.00078秒程度の処理でした

投稿2022/06/28 02:52

編集2022/06/28 02:54
yambejp

総合スコア114747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

valvalx

2022/06/28 02:59

対して影響がないというのであれば、mp3ファイルのうんMを読みこんだ時、応答が糞遅くなるのはなぜでしょうか?
yambejp

2022/06/28 03:01

> mp3ファイルのうんMを読みこんだ時、応答が糞遅くなる ちょっと状況がわかりませんが、仮にサーバー上のmp3ファイルを、同サーバー上にあるphpが読み込んでもたいした負荷はかかりません。
valvalx

2022/06/28 03:04

了解しました。 どうもありがとうございました。
guest

0

そもそも論として、毎秒リクエストを送るなんて構造そのものがHTTPに向いていません。

WebSocketなど、サーバセッション自体が継続するような方策を考えた方fがいいでしょう。

投稿2022/06/28 02:51

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

valvalx

2022/06/28 03:01

色んな技術があるのはわかっていますが、 XHRとして回答していただけませんか 10秒に1回1MBのファイルを読み込んだ時 サーバーの応答が極端に遅いのはなぜですか
maisumakun

2022/06/28 03:19

> XHRとして回答していただけませんか 「負荷や読み込み速度をなるべく軽減したい」のであれば、XHRそのものが向いていない、というのが、最初の質問に沿った回答です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問