すべてのルーチンを一つのファイルにまとめてしまうのより、 ひとつひとつルーチン毎にファイルを分けて、 一度に呼び出す方が負荷が大きいですか?
>373 漏れもそれ思うんだが、ファイルをまとめようが分割しようが、 結局たいした大きさじゃないので、どっちもオンメモリってことない?
使わないコードを解釈させない為に分割するんであって、 分割しても常に全部使うのなら、まとめた方がシステムコールが 減っていいと思う。 Perl だったら CGI.pm でやってる遅延読込が参考になるかと。 あれはあれでメモリ食いそうだけど。
>>375 それじゃ、useでモジュール呼び出すより、
requireで、必要な所で呼び出す方が良いって事ですね。
あぼーん
>>376 別に必要になったところでuseすればいいんでないかい?
そうそう、SelfLoaderかまして起動時には一部しか読み込まれないように工夫しないといかんね。
あぼーん
あぼーん
requireはそこに来た時点で読み込まれる。 function hoge() { require('hoge.php'); } hoge(); らなければ読まない。 Perlも同じく。
382 :
nobodyさん :03/06/27 16:09 ID:sG/tHFOo
コメントを山ほど書いたら負荷になります? スクリプト自体軽くした方がいいんでしょうか。
>>382 富士山ほどのコメントを書いたら負荷になります。
>>382 わかるほどの差は出ないからちゃんと書いといたほうがいいよ
あぼーん
>>386 体感できるほどの差ではない、つまり実質0
388 :
nobodyさん :03/06/28 14:07 ID:M/F9ZoCi
389 :
nobodyさん :03/06/28 14:11 ID:jkMqlRkL
変わるんだ…。
速度と分かりやすさのトレードオフ
WWW
正直言って、コメントなんか処理速度に関係なんかない。 そりゃ、数百Mとかのコメントとか入れてたら、 メモリへロードするのが遅くなるだろうが、 処理速度そのものは、何の影響もない。
え???? コンパイル時に無視されて、コンパイル結果もキャッシュされる わけなんだから、全く影響しないんじゃ?
>>394 コンパイル結果に反映されないのは当たり前
コンパイル時に無視するためには最低限の判定が必要
要はコメントかどうか判定するフラグが少ないに越したことがないのか
という話でしょ
CgiPerl , CgiPHP , mod_php のうち速度が一番なのはmod_phpなのは知ってるけど 負荷が掛からないのはどれ?
>>396 その中に、なぜmod_perlがないんだ?
398 :
nobodyさん :03/07/01 16:46 ID:67Ffrssk
printで一行づつ出力するか、 変数にデータを入れて、printで一気に出力するかどちらが負荷少ない? それともヒアドキュメント使うか。 どれよ?
mod_perlは一般的じゃないよ。
薬物使ったベンジョンソンみたいなもん?
402 :
nobodyさん :03/07/01 20:04 ID:3/m58fAf
>>398 そうそう、オレも知りたい。結構悩むんだよなー。みんな
その辺の使い分けはどうしてるの?
printよりechoのが速いってのは聞いた事あるけどね。
とりあえずバッファリングなしは効率が悪い。
404 :
403 :03/07/01 20:14 ID:???
そういえばPerlにCのfflushのような関数はないのかな? $|=1;print "";$|=0;とやるしかない?
>>398 変数作って一気に出力する。
エンコード自由に変換して掃き出せるようなものの場合はどうしてもこうなる。
ヒアドキュメントは
$aya=<<EOL;
あやや
あひゃひゃ
EOL
で変数ぶち込めるし。
echo " うほっ いい男! "; これでいいだろ
>>399 mod_phpも同じだ。
>>401 速度は、
mod_perl > mod_php > CGI Perl > CGI php
の順。ちゃんと実験したサイト行って、見て来い。
>>408 >mod_phpも同じだ。
PHP可を謳っている鯖屋はmod_php可という意味で、CGI可(※)を謳っている鯖屋は、
CGI/Perl可という意味で謳っていると思うのだがどうだろうか?
CGI可に比べてPHP可の鯖屋が少ないのは事実だが、mod_Perlを使える
鯖屋を見た事がないのは、漏れの調べ方が甘いからなのか・・・
※)一般的にCGI=Perlという認識があるのでこのような書き方をあえてしたが・・・
つまり何が言いたいかと言うと、mod_php使える鯖がそんなに非一般的では
ないんではないかという事だ。
mod_php っていう言い方、あんまきかないんだけど、 cgi版じゃない普通(というか一般的というか)のphpってこと?
>>409 適当な拡張子をApache::Registry上で
動くようにする事自体はむずかしくないんだけど
ユーザーのモジュールの名前空間に制限がかけれないので
userAが
use lib (/home/userA/lib/);
use myPackage;
としる状態で
userBが
use lib (/home/userB/lib/);
use myPackage;
とかしてくれちゃうと、動作がめちゃくちゃになってしまうので
ユーザーにmod_perlな環境を提供できません(´Д`;)
>>410 mod_phpでない場合(サーバー組み込みで無い場合)
「php対応(ただしコマンドライン版)」という表記をみかけます
>>411 レン鯖(共有鯖)ではmod_perlを提供できないって事?
って事は一般的な環境ではPHP>perlつー事?
413 :
410 :03/07/02 23:27 ID:???
でもな、Perlには、FastCGIとかもあるからな。
415 :
:03/07/04 19:40 ID:???
>ちゃんと実験したサイト行って、見て来い。 ああいう非現実的な試行環境に統一して対照されても参考にできないよね、、 まだmsがやったベンチ結果のほうがdqnぽくない PHP5のケース別ベンチやってくれんかな 個人では実験環境が作れないしzendの情報だけでは激しく不安だし、、 話は変わって、itboostのtips「効率的な処理」に、phpのループ構造は遅いから、 コールバック関数を繰り返し呼び出すとphpではなくcレベルでループが走ってくれるて いいよってネタがあるけど、これはどうなん? (あれはcountを一度にすれば大差ないような気もしつつ、、。 個人で実行速度を計測するといえば、ループ処理のことだと言ってもいいかと おもうんだけど、これってphp特有の問題?
416 :
411 :03/07/06 09:05 ID:???
>>412 ハンドラ好きにさせるのはもってのほかなので
Apache::RegistryかApache::PerlRunを提供するしかないと
おもうのですが、前述の問題があり、自分の知識内では
不可能と判断しています。
(他に良い方法がないか探してるのですが...)
>>414 FastCGIも、共有サーバだとデーモンプロセス上がりまくりで
現実的では無いような気がしますが^^;
>>ちゃんと実験したサイト行って、見て来い。 >ああいう非現実的な試行環境に統一して対照されても参考にできないよね、、 どこのサイトを見てるんですか?
420 :
:03/07/06 23:45 ID:???
>417 そのへんはコミュニケーションギャップを楽しむところだと思ったり。
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
保守?
↑ageとかんかいッ!
ageんでも保守はできるでしょ ?> <html><head><title><?=$title=></title></head> <?php と echo << end <html><head><title>$title</title></head> end; はどっちが軽いんだろうね・・・
あぁ、 < がひとつ足りないし・・・
このスレいつも大変参考にさせていただいています。
>>428 私もそんな気がして、なるべく上の方使うようにしてる
でも変数が多いところとかは下のやつ使ってる
PHPに、テキスト中に変数があるかどうか判断させる後者よりも、 明示的にする前者がやっぱ速いかな?特に変数が多いほど。 でも、PHPモードに入ったり抜けたりする負荷(と言えるかな?)を考えると前者のような気もする…
echo ' <html><head><title>'.$title.'</title></head> '; これでいいべ
>>431 長い場合、echoを大量に書くわけにもいかんでしょ
HTMLのフッタ部分は定型に近いから?><?phpを使ってるんだけど
さほど変わらないのかなぁ・・・
∧_∧ ( ^^ )< ぬるぽ(^^)
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
mod_perlで動かすと、速いときはバカみたいに速いが、 遅いときはイライラするぐらい遅い。 普通こんなにバラツキがあるものなのですか?
あぼーん
>>436 新しいhttpdの子プロセス上がった時とかキャッシュがないからでは?
重そうなモジュールは起動時に読み込むようにするとかして
コンパイル時間短くしたら?
speedyCGIで負荷が高くなると、InternalServerErrorが出るのですけど、 私の書き方が間違っているだけなんですかね?
>438 mod_perl1.2使ってたとき、モジュールのキャッシュ無視して、別空間にロードされる場合も。 最近のバージョンで改善されているかどうかは不明ですが。
>>440 モジュールの更新日が変わってるとか%INC消してるとかでなく?
どうやってその現象確認しました?
442 :
440 :03/08/21 18:44 ID:???
>>441 初回にロードした時間を記録するクラス作って、何度かリロードして確かめた記憶が。
他にも、子プロセス関係で何かしたと思ったけど、忘れた。
%INC消さなくても、ロードされる時はされてましたよ。
ライブラリモジュールに限らず、同一ファイル、同一パッケージ名の空間も
複数のキャッシュが存在してしまうこともしばしば。
それ知って以来、mod_perlは一切使ってませんが。
で、最近のバージョンはどうなんでしょう?
>>442 webDBで、mod_perlを導入したが、遅い。
まだSpeedyCGIの方がパフォーマンスが良い。
ただ、
>>439 の言う通り負荷が高くなると不安定なんだよなぁ。
なんか回避方があったら、教えて欲しいよ。
>>443 私もWebとPostgresqlで組んでいるのですが、
mod_perlだと、速度のバラツキが尋常でなくて採用を辞めましたよ。
SpeedyCGIが安定さえしてくれれば、何も心配ないのですけどね。
445 :
nobodyさん :03/08/22 15:05 ID:qLHm82v9
PHP使えよ。。
>>444 DBI.pm使ってるからじゃないの?
それはmod_perlのせいじゃないような気が。
あぼーん
>>447 >>446 じゃないが、DBIは遅い気がする。
あとDBIじゃなかったかな?サーバー名にIPアドレスじゃなくて
FQDN指定するとident投げるのって。
identが繋がらないとタイムアウトするまで固まるんだよな。
そういえば、PostgreSQLの日本語サイト見てたら、以外にも Perl/CGIで利用しているところが多いのにビビりました。 DBMS使う以上、何らかの効率性を望んでいるのだと思うけど、何故Perl/CGIなんだと問いつめたいよ。
451 :
nobodyさん :03/08/23 00:44 ID:12CD5sBt
>>450 逆に、Perl/CGIだと何がだめなのか説明してみてください。
>>450 漏れはMysq;でPerl/CGIしてるけど、移植元がperlだったから単純に鯖の負荷軽減が目的だったりしたが・・・
それに、Phpだと複雑なソース書ききれんかったろうってのもあるわけだが、お前さんはなにでやれと?
PHP使えよ。
455 :
nobodyさん :03/08/23 16:29 ID:IynKNpCX
perlなんだが。 ある位置から数行くらい読み込む時、 10kbくらいのファイルと、300kbくらい(要するにでかい)ファイルでは 負荷に違いってあります? open IN, ...; for($i=0; $i<10; $i++){ $line = <IN>; ...処理 } close IN; みたいなプログラムでつ。
>>455 どうやって「ある位置」までファイルポインタを移動させるかに依る。
行単位で空読みさせて移動するよりは seek 一発の方が速い。
その例だとファイルの先頭からだから変わらん。
457 :
nobodyさん :03/08/23 19:02 ID:V3x8NgSH
>>453 Perlで書けてPHPで書けない「複雑ソース」って何?
LHA圧縮。
>>457 最近あまり追ってないんだが、
PHPってtermiosによる端末制御できたっけ?
fork()は出来るけどpipe()は出来たっけ?
あと、PHPはスコープが滅茶苦茶だから(まぁPerlも変だけど)
あまり大きいソースを多人数で書くのには向いてないと思う。
460 :
455 :03/08/24 10:10 ID:XoFfp7Kp
>>456 サンクス
1行の文字数が不定なんでseekで飛ぶことが難しいんす。
2chログのように301-400だけ表示みたいな場合は
やっぱ空読みしてるんかな。
462 :
455 :03/08/25 11:33 ID:???
でもどうやってx行目を見つけ出すの? 適当にread系のcgiを漁ってみたけど、やっぱ空読みしてるみたいだわ。
>>462 1000行程度なら空読みでいいと思う。
万単位になったら、インデックスと作るとか対策考えろ。
>>462 1、行ごとのファイルポインタを記録してある。
2、一定件数ごとに、ファイルポインタを記録してある。
3、2chは入力値の長さが決まっているから、固定長フォーマットにしてある。
これだけのアクセス数があるところで、空読みは考えにくいな。
板のトップで、数千行単位で空読みされるのですか?
465 :
nobodyさん :03/08/25 14:55 ID:JfnblB1o
>>464 今は知らないけど、今までのVerでは思いっきり空読みしてるよ。
↓以前のread.cgi空読み部分。
else
{
if(nn_st && lineNo < nn_st) continue ;
if(nn_to && lineNo > nn_to) continue ;
if(nn_ls && line < lineMax - nn_ls) continue ;
}
ファイルのオープンってI/Oの負荷がでかいから、
ファイルポインタを記録/読出しするのも結構な負荷になる。
あぼーんの処理も面倒になるし1000行空読みの負荷がたいしたこと
ない(実際やってみ)事を考えると、大してメリットはないと思われる。
ちなみに2chは固定長フォーマットではないし、板のトップは書き込み時
に更新されるだけだから、read.cgiより呼び出される回数は圧倒的に少なく
それほど問題にならない気が。
useって宣言した場所によって読み込まれる時期が違うの? それならJcodeなんかは先頭でuseせずに 送られてきたデータのチェック済ませてから読み込ませた方が良いのかな。 #チェックにJcode使うなら別だけど
ホッシュホッシュ
SpeedyCGIでどうやったら、負荷が高いときのエラーが無くなるんだろう。 もう訳がわからん。
>>471 負荷を軽減させるために、
>>470 がspeedyCGIを入れたんだろ。
ここは、負荷軽減の為のスレだよ。
ホッシュホッシュ
474 :
nobodyさん :03/09/17 21:25 ID:Rf3lCYFV
PHPの掲示板なんですができるだけ負荷がかからないログの読み込み方法ってどんなのがありますか? 今は書き込みや読み込みの時にfile()で全部取得しているんですがログが増えると負荷が大きくなりそうな気がするので。
>474 DB使ってね!
476 :
nobodyさん :03/09/17 22:15 ID:Rf3lCYFV
DB使う以外にうまいやり方無いですか?
>476 ないですね! 逆に、なんでDB使うのいやなんですか?!
>478 474が悩み事の矛盾に気がつかないからだよ!
>>477 2ちゃん程度の規模でもDBなぞ使ってないんだが。
ていうか、逆に2ちゃんをDBで書き直したらえらい事になると思うが・・・。
普通のBBSって書き込みはFIFOだし、読み出しはシリアルだから
逆にDB使うほうが負荷が大きくなる。
481 :
474 :03/09/18 00:06 ID:???
DB使うのが嫌っていうか使ったことないので DB使わずにfile()以外のやり方ないかと思ったんですが
482 :
:03/09/18 00:52 ID:???
>481 スレ読めよ。
ん?なんか問題あるか?
問題ないだろ
485 :
483 :03/09/18 07:46 ID:???
「スレ読めよ」か。「スレタイ読めよ」と勘違いした。
>474 データ構造を固定長にしてバイナリファイルに格納しておき fseek fread fwrite などを使えば部分処理が出来るから負荷は 減ると思うよ
SpeedyCGIでエラーが頻発したので、PerlからCに移植した。 えらく辛かったが、めちゃくちゃ速くなった。
apacheの軽量化が威力あると言うが、 具体的にどういったモジュールを消せば良いのだろう。
mod_rewrite
>488 とりあえずスレ違いと思われ スクリプト上で解決可能な話題が主題かと思う
推敲しようぜ。
492 :
nobodyさん :03/09/24 22:58 ID:Fv8u9zA+
人よりちょっと知識の多い香具師が少ない香具師を馬鹿にするスレはここですね。
>>490 apacheもスクリプトも両方チューニングして、
「負荷軽減対策委員会」と呼べるような気がするのだが…
>>1 を見る限りそうとは思えないけどな
方針変更という事で・・・
Apacheのチューニングはスクリプトの有無や出来とは関係なく できることだし、別問題じゃないか?
ループ開始
ループは負荷が増えるので禁止
足りない? mod_mime_magic,mod_dir,mod_auth,mod_access,mod_cgi,mod_log_config,(mod_env) (mod_perl)
500 :
500 :03/09/26 12:46 ID:???
500
501 :
nobodyさん :03/09/28 01:16 ID:Hg1oCkYh
>>501 速度重視ならDSOを使わな方が良いという話で良い?
>>502 そういうこったな(w
>>501 「あぱちのmoduleとして動作させると」とか
書いとけばつっこまれなかったのにな
素直に専用鯖借りてmod_perlとgzip圧縮でも使いなさい。
もうgzipはいいだろ。
保守
ホシュ
出尽くしたかな。
変数より定数使ったほうがやっぱ軽いのかなぁ・・・ あとは定数と直接数値を書き込むのはどっちが軽いのだろうか
>>509 ぐだぐだいう前にベンチしろ、このヴォケが
ね、みんなローカルでPerlをテストする時、何のソフト使ってるの?
何のソフトとは?エディタ?ブラウザ?
私はペギーパッド使ってます
Winで簡単なPerlだったらプロンプトで十分だけど。 Perlを始めよう、ならエディタから直接プロンプト起動できるし良い。 俺はtxt,HTML,Perl,PHP,SQL,C,Java,XMLなど全部ひとつのエディタで やりたいからEmEditor3を使ってる。
515 :
511 :03/10/29 13:34 ID:???
ね、みんなローカルでPerlをテストする時、何のソフト使ってるの?? 自分は エディタ・・・秀丸 ブラウザ・・・アパッチ
特に深いことは考えてない。 エディタ:QX(慣れてる&コマンドラインに渡せるから) サーバー:ANHTTPD(既に入れてたから) なんだけど、やっぱ、アパッチの方がいいかね? ……スレ違いだけど、この話題続けていいもんかね。
負荷軽減にはあまり関係ない。 エディタはPerlエディタスレ、サーバ話は何処が良いんだ。 無難に初心者質問スレでも薦めておくか。 ところでブラウザがアパッチって凄いな。
518 :
511 :03/10/29 16:10 ID:???
あ、ごめん、サーバの間違え
>>512 がブラウザ?って・・・
519 :
nobodyさん :03/10/29 16:31 ID:t/aBtGdw
美少女が変態では何の価値もない
テストサーバーで、JAVAみたいに「;がありません。」など、 エラーの内容を出力してくれるサーバーって無いの?
>>521 例えばCGIでエラーを標準出力に表示するのは?
>>522 え?そんなのあるの?知らなかった・・・・
やり方は?
>>523 言語にもよるけど、rubyならこんなかんじで
begin
# 例外が発生する可能性がある処理
rescue 例外
puts "#{$!} (#{$!.type})"
puts
[email protected] ("\n")
end
perlはよく知らないけどこれでできるかな?
eval 'なんかの処理';
print $@ if($@);
と言うかスレ違い以下略。
526 :
nobodyさん :03/11/06 16:02 ID:4b5YfiKA
巷に出回る perl CGI って、 1. グローバル変数多し、my レキシカル変数使わず 2. 関数分割せず、ベタ書き 3. ヒアドキュメントを使わず、print '' の嵐 なものが多い。こんな手法が負荷軽減に貢献すんのか? 意見求む。
誰でも負荷軽減を考えているわけではないから
>>526 > 2. 関数分割せず、ベタ書き
について負荷軽減との関連性についてのご教授お願いします。
軽減はしますよ。 でも、HTML を軽くするために、すべての改行を取り払ってサイズを小さくしよう的な アプローチですにゃ。そこまで必死な人は、すればいいにゃ。
ベタ書きのほうが負荷はかからないのは言うまでも・・・
ブラウザゲーム作るならやっぱりphpのほうがええかな?
>>531 負荷を考えれば、そうだけど。
普及を考えれば、どうかにゃあ。
ヒアドキュメントってprint"と変わらないんじゃなかったっけか?
ケース1:print 文の嵐 print '<HTML>'; print ......... print '</HTML>'; ケース2:print 文いっかいだけ print '<HTML> ....... </HTML>'; ケース3:ヒアドキュメントで print 文いっかいだけ print <<'END of HTML'; <HTML> ......... </HTML> END of HTML こういうのを比べてるってこと?
ヒアドキュメントかどうかは関係がないと思うけど。 ケース2とケース3は、(ヒアドキュメントの末尾の改行を除けば)等価でしょ? じゃなかったら首つるです。 違いが出てくるとすれば、パース・・構文解析にかかる時間。 それも有意差は出ないでしょう。 異論ありますかにゃ?
もういいから。わからないやつは黙っておけ。
538 :
nobodyさん :03/11/07 07:00 ID:H74hevQp
PHPAってどのくらい早くなるんだろうか。 …測定はやはり浮動小数点か何かでやったらいいのだろうか。
PHPAってコンパイルキャッシュするだけか。 (´・ω・`)ケイゲンサレタノカ、ヨクワカンナカッタ。
>>540 PHPA、だいぶというかかなり違うようですが。
>526 my 変数の方が速いの? 速度とか関係無しにstrict通るようにした方が良いだろうって話は置いといて。
そりゃあ速いさ シンボルテーブルに登録されないし
メモリにかかる負荷を測定するってことは出来ますかね。
ああ俺もそれ調べたい。 と言うかメモリ使用量とかどうやって調べてるんだろ…。 測定用のモジュールとかあるのかな?
>>547-548 OS に依る。Linux や *BSD なら vmstat(8) とか top(1) で
別ターミナルから測定。
Winは無理っすか。 タスクマネージャみたいな監視ツール作ってログ取るようにすれば良いんかな…俺にゃ無理だけど…。
掲示板とかのスクリプトでHTMLを吐き出してそれにアクセスさせるってあるけど ログファイル自体をHTMLにするって効率悪いよねぇ。
>>551 変換するのは1回だがアクセスされるのは何度もあるからいいのよ
逆にアクセス解析とかカウンターとかは変換するだけ無意味って言うか ログなんて管理人しか見らんし。
↓イケイケ
ID:???←こいつうぜえ
556 :
nobodyさん :03/11/16 09:50 ID:+X9Lai7L
久しぶりに見たら。このスレまだ生きてたんだー
今日、会社休みます。。。 会社の負荷を減らすためにネ!
1日だけとは言わずに毎日休んだらどうっすかね?
人類のお荷物を減らすために?
ミンナリストラ
561 :
nobodyさん :03/11/27 00:12 ID:fPk+Wuzv
堕スレ化したの? でも、結局負荷軽減ってアルゴリズム考えた方が、 myがどーの、ヒアドキュメントがどーの、言うより意味あるよね。 言語選択ではある程度答え出てるし、このスレの意義って。。。
ちょっとした負荷を減らすために非常に参考になりました
ふかふか
ふかきょ〜〜〜ん!
やっぱ表示速度を優先するか サーバの負荷を優先するか。 きわどいな…
サイトのセンスは最悪だな
568 :
nobodyさん :03/12/01 14:07 ID:E1CqoPVw
> [ネットランナー] > ベスト・オブ・ツール 2002 > サーバ&コミュニティ部門 掲示板CGIカテゴリー > (祝) 金賞受賞 これはすごいことなの?
571 :
nobodyさん :03/12/01 15:14 ID:E1CqoPVw
>>571 厨房の愛読書だよ
賞もCGIの人気とか上っ面だけしか見てないで取ったりして、
作る人から見たらひどいソースのものも入賞してる
うるせぇよ、年末の賞の審査員は有名サイト管理者を寄せ集めてるんだから、 それには文句いうの(・A・)イクナイ!!
まあ、実際使う側からしてみれば、 たいていのやつがソースなんてどうでもいいんだがな。
とりあえず、あんなのに金賞をあたえるネトランは糞
576 :
nobodyさん :03/12/01 17:46 ID:w243ltNf
ちょっと使ってみた 重(・A・)イイ!! 返信で無制限にファイルをアップロードできた ファイルタイプの判別を拡張子のみでやってる 設定でどうにかなるかもしれないけど とりあえず気になったのはこんなところ
ていうか、コード酷すぎ。 配列の使い方すらわかってないように見えたし、変数全部グローバルだし。 関数の使い方も変だし。 ネットランナーとかいう雑誌のレベルがわかっちゃうな
だから対象の選考者は一般人だってば
一般人だとなんだっていうのよ?
俺らに責任はありません。
>>566 ネットランナーとやらでは金賞かもしれんがバグ放置はまずいと思うぞ。
常にSTDINから無条件で受け入れる仕様。
投稿記事がある状態で-Tを付けて起動するとrtn_gnrl.plで起こる無限ループ。
管理用ページ→基本設定→「記事ページ最大表示数」を空にして設定保存→掲示板へ戻ると
Lib_gnrl.plで0除算して二度と起動しなくなる事で負荷を下げるエレガントな仕様、等他大量。
>>581 > 負荷を下げるエレガントな仕様
禿しくワロタ
[Tue Dec 02 20:31:53 2003] [error] [client 127.0.0.1] Illegal modulus zero at ./routine/Lib_gnrl.pl line 514.
[Tue Dec 02 20:31:53 2003] [error] [client 127.0.0.1] Compilation failed in require at bbs.cgi line 35.
こんなとこで陰口たたいててもしょうがない。 直接言ってやらないと。
陰唇と陰口どっちが好きですか?
陰核
陰核を 叩いてわたる(^^) 585
587 :
nobodyさん :03/12/07 10:59 ID:kmAZpJfG
Linuxサーバ、topで調べてみたら 毎晩httpdにCPU20〜89%くらい使用量があって サーバが激重なんですが、原因がはっきりしない… Apacheやネットワークの設定をどうにかこうにかして 負荷を減らす方法無いですか?
妙に抽象的なんですが、
>>587 どのようなスクリプトを実行させているか、で話は変わってくる。
>>587 非力なwwwサーバで山ほどモジュール組み込んで激重CGIでも置いてるんだろ
鯖がリダイレクト合戦してるんだよ。
592 :
587 :03/12/08 10:06 ID:ZQtmk+Sq
>>589 2ショットチャットとか画像アップローダとか・・。
>>590 えーっとサーバは確かPenIVの2GB、RAM1GBだったかな。
騙りだろ
釣りだろ
PenIVの2GB PenIVの2GB PenIVの2GB PenIVの2GB PenIVの2GB
597 :
nobodyさん :03/12/09 04:16 ID:oL7UDJrs
あまりに盛り上がらなかったからねぇ
599 :
nobodyさん :03/12/09 10:15 ID:5gjkqVTX
陰口を叩く。
陰唇と陰口どっちが好きですか?
著作権表示を消す
すれ違いと言われたのでここにきました。 my($a,$b,$c); とするのと my($a);#コメント my($b);#コメント my($c);#コメント と書くのでは、処理速度や負荷に差がありますか? 配布とかメンテを考えると後者で書きたいんですが。
大差なし。メンテしやすさが最優先。
全体で150KBくらいになるCGIソースで 処理によってはルーチンのうちのほんの一部しか 使わないという場合、 処理をライブラリにしてrequireするのと 全体が1ファイルなのとどっちが効率いいのでしょうか?
環境によるだろ。計測しろ。
計測ってどうやってやるんですか? でっかい実行ファイルを起動するのと ちっちゃいのを起動してrequireするのと どっちが軽いかという問題だと思うんですが。
>>606 負荷が気になるなら負荷を調べる方法ぐらい知っておいたほうがよろしいかと
>606 そもそも、あなたの「軽い」ってどういう意味ですか?
<? exit; 〜以下長文〜 ?>
>>606 requireのとこまで来たら結局全部読み込まれるのではないかな?
処理順では通らない部分のrequireも スクリプト内にあるとrequireされるんでしょうか? requireを見つけてからrequireする?
>>611 そんな簡単なことぐらい試せばわかるだろ
#!perl if ( 0 == 1 ) { require './存在しないスクリプト.pl'; } exit;
一枚岩で作って、え〜となんだっけか名前わすれたけど 一回実行したらメモリー上にキャッシュして次回から高速実行するツール あれ使ったほうが軽さという面では圧倒的(ただしCPU負荷) 回線負荷は変わらんし大概先に満杯になるのは回線帯域のほうだ
負荷を気にするならperl,phpをやめろ
perl、phpの中でだろ? 共有鯖での利用を考えてる人もいるだろうし
ACP管理者
7行プログラムってスレ、すごいねアレは。 でも、短くするために敢えて重い処理をしていることもあると思うんよ。 それでも短いから負荷は感じないわけだけれども。 単純に処理を軽くする以外にも、コードを小さくする負荷軽減もあるんやねぇ。
619 :
nobodyさん :04/02/22 22:12 ID:hBJi8oj3
言ってること矛盾してるじゃん。 >短くするために敢えて重い処理をしている >コードを小さくする負荷軽減もある ドキュンやな。
翻訳を試みた。 ある処理をする際に A: 複雑な処理をする組み込み関数を使う B: 単純な処理をする組み込み関数をいろいろ組み合わせる の2種類の方法があるとして Aの負荷 < Bの負荷 ってこと?
621 :
618 :04/02/23 00:56 ID:???
>>620 YES.
そういう場合もあるんじゃないかと思ったので。
622 :
619 :04/02/23 04:07 ID:???
フーン。スマソねー。
HTTP/1.1 のチャンクコーディングを忘れてない? 試しにnph ソースを作って、Content-Length を送信するようにしたら、 チャンクコーディングされなかったけど、接続が毎回切れるみたい。 どっちが良いのか微妙っぽい。
624 :
nobodyさん :04/04/20 20:30 ID:yfis5kmt
age
625 :
nobodyさん :04/05/16 04:46 ID:2fTgoYEJ
A.. if($aa=~/x/){$pa=1;$pb=1;}else{$pa=0;$pb=0;}
B.. $aa=~/x/?($pa=1,$pb=1):($pa=0,$pb=0);
等価らしいです
ソースは、
ttp://ww4.tech.nu/?d=653 たしかにコードは短くできるので試したところ
レスポンスが悪く、重くなった気がします
>>625 三項演算子使ってるだけでしょ、普通に使うけど。
レスポンスは落ちるのかなぁ?
629 :
nobodyさん :04/05/20 12:34 ID:NShBOzWM
PHP普及の原因は、イスラエル・Zend社のマーケティングの成功にある。
@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!
630 :
nobodyさん :04/05/20 13:06 ID:9F0Z79In
Cで組め。手っ取り早く最速で負荷を極力少なくできる。
負荷を少なくするならまず、 データ構造とアルゴリズムを見直せ 次にCPUをグレードアップしろ それでもダメならCか汗ブラで
スタップ?
PHPって Personal Home Page の略?
634 :
nobodyさん :04/05/20 16:11 ID:cgjPprlD
ここできくなよ
喪主
636 :
nobodyさん :04/07/18 20:12 ID:Sl8hc8ID
637 :
nobodyさん :04/08/11 03:33 ID:2sgdWAV8
なんで掲示板をテキストファイルに出してるんだ? データベースに入れてしまうのってよろしくないの? 最後の方を読む時とかに早いと思うんだけど。
保守
ゲッシュ
2chの話になるけどさ、sageで書き込みするとスレッド位置が変わらず、 index.htmlとsubback.htmlの更新・ソートを省略できて負荷軽減に繋がらない? と思ったけどレス数表示のために更新しなきゃならないか…。 もう少し工夫すればなんとかなる気がする。
ディスクのアドレスに直接書き込めばいいと思うよ
>641 マジレスするとそんな低レベルの操作をしたら 処理中は他の処理が出来なくなるだろうが
643 :
nobodyさん :04/10/20 23:44:33 ID:gn/p6wba
あげマン
644 :
nobodyさん :04/10/21 19:27:52 ID:vF6/MaNc
掲示板なら静的HTML生成が一番簡単で一番効果がある。 スクリプトをあれこれこねくり回す前に試してみれ。
>644 誰に対してのレス?
javaでクッキーを保存する方法が載ってれば全部HTMLにするのに
java?javascriptじゃなくて?
>>644 それは理解した上で別の方法を模索するスレなのでは?
javascriptでクッキー出力はできるけど・・・多分違うことなんだよな
静的HTML生成ってどうやればいいの?
>>649 ようするにHTMLでクッキー機能できるようにすりゃいいってことでしょ?
654 :
nobodyさん :04/10/25 05:44:32 ID:XKm5So8L
セットはcgiですればいいから、あとはそれをJavaScriptでゲットすればいいんだよ。
ファイルの読み書きはperlのキモの部分だから、せめてこれだけは理解しましょう。
javascriptでゲットする方法が載ったサイトきぼん
getCookie
htmlの不都合点とかあるかな? NEWマーク表示できないくらいしか思い浮かばん いらん機能だし
659 :
nobodyさん :04/10/25 17:26:29 ID:7ozi48tg
660 :
nobodyさん :04/10/25 17:29:59 ID:7ozi48tg
HTMLの不都合は、たとえばSSI使わないとカウンターが表示できないとか。
オールHTML化するとレイアウトを変更したときが面倒なんだよなぁ。 ファイル数も結構増殖していくし。 それくらいかの。
HTMLでクッキーとか機能させるって言ってるけどIE以外は無視? operaやMozillaだと文字化け起こすぞ
IE以外いいよってみんな思ってるんじゃない? 実際そうだし2chもそうだからいいかな、と。
666 :
nobodyさん :04/10/27 10:40:24 ID:GQQpVWEo
javaだとIE以外じゃ日本語取得できないのかorz みんな妥協派ですか?
670 :
nobodyさん :04/10/27 16:51:51 ID:pygimpYU
閲覧時にクッキー使ってなにがしたいの? 投稿時ならともかく。
例えばツリー、スレッド表示の切り替えとかじゃね?
お!早い。 切替ならそれぞれリンクを用意するだけで済むのでは? 閲覧時のクッキーってストーキング用途しか思いつかない。
>>674 それだけしか思いつかないおまいの脳に乾杯
>>664-667 あたり
2chで化けるのはbbs.cgiで発行してJavaScriptで取得してるからじゃ?
javaで発行すると問題あるんじゃなかったっけ?
678 :
nobodyさん :04/10/28 07:03:35 ID:aCWpvFRR
つーか無理にHTML表示なんかせんでもいいよ。 動的にやればインタラクション的にも手軽になんでも出来るし。
わざわざ内部に組み込むのがアレだって話してんだろ
掲示板の1ページ目だけだけど HTMLにすんのとしないのとじゃけっこう差出るの?
htmlファイルに書き出すかどうかは、そのサイトへの訪問者の利用状況によって異なる 一概に○○なら△△とはいえない。 まあ、統計的に、そのページが更新されるまでに10回以上アクセスされるとわかれば、 一般的にはhtml化した方がいいだろうな。 式にすれば html化するコスト << html化しない場合のCGI起動コスト * not modify間での平均アクセス数 の場合は、html化のメリットが大きい
まあHTMLよりCGIの方が負担少ないなんてことはないな
まあHTMLにしないで負荷を軽減する方法を模索していくのもいいんでない?
むしろHTML化できないからプログラムの負荷を下げる必要があるんじゃね? 本当に負荷を下げたいならCGIなんか使わずサイト丸ごと圧縮しておくのが一番だろうし。 俺はCGIを作る側だけど実は↑これが一番好き。
しかしコスト(時間や手間込み)単位での効果ならやはり静的HTML生成がベストチョイスなのも事実だし。 まあ両面作戦だね。
1, Requests per second: 2.67 [#/sec] (mean) perl/cgi 2, Requests per second: 17.53 [#/sec] (mean) mod_perl (1と全く同じソース) 3, Requests per second: 60.22 [#/sec] (mean) html (1,2のプログラムで出力された物をhtmlで保存した物) DBIやarchive等、結構重いモジュールを読み込んでDBにアクセスして表示するプログラム。mod_perlのDBアクセスは永続化している。 処理内容によって一概にいえないけど1つのパターンとして参考までに。 静的htmlだとカウンターだのダイレクトに表示出来ないしクッキーも文字化け(IEではunicode,xxxだとURLencodeだの) 等の問題が発生してめんどくさい。クライアント依存の処理はやはり気持ち悪い。
>>687 これって数字高い方がいいってことなの?
ベンチマークに無知でスマソ
確かに文字化けるんだよな・・・
ユーザにHTMLとCGIモードを選ばせるようにしたらいいかも
書き込みのときjavascriptでクッキー発行すれば化けんよ。
「
>>1 」
このアンカー、2chではタグをアクセスごとにつけてるんだっけ?
でつ<喪主
693 :
nobodyさん :05/01/07 17:35:04 ID:qgEKEyAA
質問なんですが、 リンクトレードproやThe Roomのランキングリンクのようなエロサイトによくあるランキングを PHPで作ってみました。ユーザーごとに情報を1行CSVに保存させて、それがカウントファイルも兼ねてます。 表示部分は静的です。 出来上がったところで、上司に負荷かかりそうだからDBにしてよと言われ、MySQLで作り直してみたところ、 現在ユニーク1万/日くらいのサイトであっというまにMySQL接続数多杉エラーが出ました。 サーバ管理者にMySQLの接続数多すぎと出ましたと言ったところ、 設定変えることもできるけど、トラフィック多いサイト目指すならPostgreSQLにしたほうが良いといわれました。 今とりあえず素直にPostgreをサイト見ながらソース書き直してますが、 一体どの方法がベストなんでしょうか。 ちなみにPHPは趣味レベル、DBの経験は今年からなのでソースに問題があるのかもしれません・・
>>693 postgresにすれば良いってわけじゃないような。
ユニーク1万/日ぐらいだと、squidでリバースプロクシを導入してみるとかは?
695 :
693 :05/01/07 18:12:16 ID:???
>>694 今後増える予定です。目標が10万PV/日くらいです。
>>695 同時接続数を増やせないなら、1接続あたりの接続時間の短縮をやらんといけない訳で。
もうクエリを発行しないと分かった時点でコネクション切断とか、
そのレベルの最適化はやってるよね?
初心者らしいから言ってみると、WHERE句、LIMIT, OFFSETで取得数を限定して、
DBから取得したけど使わず捨てているデータを削りこむとかやってみそ。
697 :
693 :05/01/07 18:56:00 ID:???
>>696 やってるつもりなんですが、、
inのカウント取得ファイルのソースをコピーしてみます。
http・・・xxx.php?usrid=$usridで叩いて、DB開き。
$tabledata = mysql_query("SELECT * FROM usr_table",$db);
//配列に入れ
while($row = mysql_fetch_array($tabledata))
{$usr_array[$row[usrid]] = $row;}
//t1フィールドに直前IP記録&カウント
if($rmhost != $usr_array[$usrid][t1]){
$incountup = mysql_query("UPDATE usr_table set incount = ceiling(incount + 1) where usrid = \"$usrid\"");
$ipupdate = mysql_query("UPDATE usr_table set t1 = \"$rmhost\" where usrid = \"$usrid\"");
}
mysql_free_result($tabledata);
mysql_close($db);
if( !$db ) {
print "接続できません。<br>\n";
exit;
}
header("location:{$homeurl}");
これだけです。これで動いたんですが、やっぱり記述おかしかったりしますかね、、?
まさか mysql_pconnect とか使ってないよね?
>>693 ランクカウント以外の部分(順位の表示とかカテゴリ参加数の表示とか)はどう処理してる?
もしリアルタイムでやってるなら、静的なHTMLで処理するとかcronで処理させるとかすると、
劇的にコネクト数は減るよ。
ユニーク1万にも耐えられないならDB使う意味ないし、Postgresにすりゃいいってもんでもないと思ふ。
やはり、設計段階からの見直しが必要かと。。
毎秒何回ぐらいqueryの発行あるか分かるなら書いてみて。
700 :
693 :05/01/07 21:46:52 ID:qgEKEyAA
mysql_pconnect思いっきりつかってますが、、それって駄目なんですか?
>>699 順位他の処理は、3600秒ごとに静的に書き出してテキストファイルをrequireしてます。
cronではなく、テキストファイルにタイムスタンプ書き出してアクセスごとにチェック、前の書き出しから+3600秒以上経っていたらランキング再書き出し、という感じです。
>ユニーク1万にも耐えられないならDB使う意味ないし、Postgresにすりゃいいってもんでもないと思ふ。
ですよね。。
毎秒何回query発行あるか、どこで見れば良いんでしょう。。
とりあえず今はサイト止まってしまうので旧テキストファイル版に戻してしまいました。
>>700 やはりそれぢゃったか
mysql_pconnect して DB に接続すると
mysql_close しても
スクリプトが実行を終了しても
それどころかクライアントがブラウザを閉じた後も
DB接続が切断されずに残り続けるんぢゃよ
つまり今の状態だと mysql_close が全く効いておらん
これは接続をプールして再接続の負荷を減らすためのGJな機能なんぢゃが
DB接続数上限が逼迫している状態では逆に足を引っ張ってしまう両刃の剣
素人にはお薦めできないとまでは言わないが、注意して使わんといかんのぢゃ
mysql の最大接続数を apache の MaxClients より大きく設定する、とかぢゃな
とりあえず mysql_pconnect を myqsl_connect に変更すれば
mysql_close で接続が切断されるようになるので
かなり状況が改善するんぢゃないかのう
703 :
693 :05/01/08 01:09:47 ID:???
うわー、、そうだったんですか。 きっとそれっぽいですね。 大変勉強になります。ありがとうございました。とりあえずそれを試してみます。
>>697 なんてか、削り込み以前にDBMSの本をちゃんと読もうよ。。
header("location:{$homeurl}");
と、リダイレクト先URLしか要らないのに、
$tabledata = mysql_query("SELECT * FROM usr_table",$db);
ここで全テーブルデータをぶっこ抜いているのがそもそもの間違い。
ここは
$tabledata = mysql_query("SELECT * FROM usr_table WHERE usrid = \"$usrid\" ",$db);
と必要な行以外は抜いてこないように直すべき。
全テーブルぶっこ抜きの方法は、いわゆる「MySQLでかんたん掲示板」系の 入門書から取ってきたんだと思うけど、このやり方、小さな個人サイトなら またしも10万PV/日のサイトに使える方法じゃない。 という訳で入門書以外のDBMS専門書を読むことを勧める。
perl のDBMモジュールでも データーベースオープン 全データーを配列にコピー データーベースクローズ その後配列に対して処理色々なんてことをやってるスクリプトを見かけるが 全部読み込まなきゃいけない処理なら普通のファイルに保存したほうが軽くて速くないか?
>>706 早いかもしれないけど影響がでるほどの量だとすれば、
データの書き込み(更新)する必要がある場合dbでやる方が安全だと思う。
>>707 いや、だから、あのさ(w
db使うなら丸ごと読み込んだりしないだろう?普通
全ぶっこ抜きじゃトランザクション隔離のかけらも無いよなぁ
710 :
nobodyさん :05/01/29 14:37:47 ID:8oiPQs40
大前提として、どれくらいの規模(データと一日あたりのhit数)になったときに プレーンテキストからDBに移行するべきなのかという目安を考えるべきだと思う。
サーバスペックやスクリプトの作りにもよるからなあ とりあえず思いつくのは ・アクセス頻度と平均処理時間から待ち行列を計算して「ヤバ」と判断したとき ・top の load average が 1 を超えたとき ・HDDのスワップ音が聞こえるとき ・体感的に「重い」と感じたとき
表示用HTMLファイルとか作成しちゃうなら、場合によっては 小規模でもデータはDBで管理した方が良いね。
そうだな、俺もDBが動いてる環境なら規模によらず常にDBを使う
私もDB使っちゃうな
orz
DB使った方がコストが安くすむ…場合もあるからDB使っちゃうな。 こんな俺はきっと駄目なPGだ orz
落ちないもんだな・・・
w
↑
httpd.conf 最適化とかリバースプロキシとかの話はここではしてないの?
>>721 それはWebProgを走らせる「環境」の話だから。
ここは共有鯖で使うCGIの負荷を以下に下げるかの話するスレ(機能してないけど)
httpd.confみたいに説明書と設定ファイルが同じになってると萎える コメント行削ったら半分以下になった
すいません、ちょっと負荷の意味が違うかもしれない質問なのですが CGIやPHPで大きなファイルなどのダウンロード速度の制限などを行えるのでしょうか。 検索してみても出てこなかったので やはりサーバーの方で直接設定しないと出来ないものなのでしょうか。
普通はmod bandwidthとか使ってやると思うけど・・
>>724 スクリプトでファイルを読んで、pushするなら出来ないことも無い。
でも回線負荷は下がるかもしれんが、サーバの負荷軽減にはならんでしょ。
普通は
>>725 の通り。スクリプトでファイルを送り出すなんてしない(高負荷)。
となると,DBにファイル放り込むのはよくないのかな
教えていただき、ありがとうございました。 やはりサーバー側で直接行う方がスマートで負荷低減になるのですね。 当方サーバー側をTelnet出来ない専用サーバーをレンタルしており スクリプトでどうにかならないか考えておりました。 SQLite機能がついており、ファイル制限が出来るらしいのですが DBもやめた方がよいとのことで、 ありがとうございました。
>>727 管理上の必要があれば、DBに放り込むこと自体が悪いわけではない。
>>728 専用鯖なら負荷かかってもいいんじゃないの
>>728 専用サーバなのにTelnetできないのかww
ちょいと具体的な話でなくてもうしわけないんですがとあるWEBアプリケーション(phpからpostgresを使ってるらしい)について相談をうけまして ちょっと覗かせてもらったらapacheのプロセスがひとつ毎に10MBほどもメモリーを消費しちゃってるんで、一瞬、え?っと思ったんですが 当方phpもpostgresもあんまり詳しくありませんのでもしかしたらこの構成だと普通の状況なのかな?とも思いまして質問させていただきました phpはapache2.のモジュールとして組み込んで有ります。 それくらいふつうだろとか、直感的になんかあやしいとか、プログラムがタコだとそうなるとか、感想をお願いします
ポスグレのデーモンじゃないか
>>734 要約するとapacheのモジュールとして組み込まれたphpからpostgresqlを使ったらメモリーを10MBガメるのは普通ですか?
ってことだな
ただ単にApacheに色々組み込みすぎて肥大化してるんじゃない?
>>736 thx
ただのリクエストで、どれだけ消費するか見てみないと、なんともいえないね。
>>733 >apacheのプロセスがひとつ毎に10MBほどもメモリーを消費しちゃってるんで
普通。
740 :
739 :2005/10/28(金) 00:50:20 ID:???
正しくは >phpはapache2.のモジュールとして組み込んで有ります のような状況の場合、普通。 (PHPのエクステンションを極力動的に組み込めば減るけど)
PHPってメモリー食いなんですね もしかしてCGIから動かしたほうがいい?
>>741 10メガ位でけちけちすんなよ
別プロセスで立ち上げると負荷かかって遅くなるし
>>741 その代わりPHPを使うリクエストがくる度にロードすることになるから
今度はCPU負荷が高くなるよ。まあサイトの特性で考えれ。
共有サーバなんかはセキュリティを高めるにはCGIで動かすしかないしな。
(例えリクエストの度にロードされてレスポンスが悪くなるデメリットがあるとしても)
>>743 >共有サーバなんかはセキュリティを高めるにはCGIで動かすしかないしな。
何故?
参照渡しとかすると負荷は軽減するのか?
747 :
nobodyさん :2005/11/05(土) 08:52:03 ID:mQF7x1FD
データの無駄な二重化が無いから負荷は軽減すると考えてもいいんじゃ? 間違ってたらスマソ
データがコピーされるのは,値が変更されるときでは? $a = $b ってしてもその瞬間にはコピーされない.
らしいね。 だから、PHPでは「パフォーマンス重視の参照渡し」は ほとんど無意味ってことかな。
C ならともかく,スクリプト書きながらそういうレベルのパフォーマンス向上を考えること自体間違いな気もするね.
751 :
nobodyさん :2005/11/06(日) 12:37:26 ID:v9ryuHmW
むしろインタプリタだから「少しでも速度向上」を気にするのでは?
トレードオフだろ
>>741 eAcceleratorなんか使ったら相当違わない?
>>751 要するに PHP を選択してる時点で既にパフォーマンスよりも開発効率を取ってる,ってこと.
速度上げたいなら重い処理だけ C/C++ 使うとか,あるいはハードウェアで解決するとかしたほうがいいんじゃないかな.
アルゴリズムの最適化はもちろんするけど.
まずはプロファイリングだな
756 :
nobodyさん :2005/11/30(水) 18:13:41 ID:K1wk1cov
アクセラレータつかったりFCGI化するだけで天と地ほど違うぞ インタプリタだからこそ工夫するというのはその通りだけど、 ざっくり体感に跳ね返ってくるレベルで考えたほうがいいと思う
>>733 たかだか10Mだろ?
そこメモリ何Mのマシン使ってんのよ?
32Mとか?w
758 :
nobodyさん :2006/04/05(水) 19:30:26 ID:zzYD4Tt9
このスレッドで聞いていいかな・・・? DBサーバとフロントサーバを分ける場合、 両者はやはり同じLAN内に設置するのが基本ですか? 離れたところに置くと、レスポンスはけっこう遅くなります?
>>758 物理的な距離とレスポンスは関係ない。
LANであろうが回線が遅ければ遅い。
WANであっても回線が速ければ速い。
マルチだけど答えておくか。 セキュリティを重視して分けておけ。
761 :
758 :2006/04/05(水) 21:03:46 ID:zzYD4Tt9
どもです。 同じLAN内に設置すべき、っていうわけでもないんですね。 でも普通はLAN内の方が回線は速そうですね。
>>761 何かLANとドメイン(≠インターネットドメイン)を
一緒くたにしてるように思えるけど。
一緒ですよね。
764 :
nobodyさん :2006/04/07(金) 00:57:56 ID:45h+7cJz
インターネットを介さないという意味なら、プライベートIPアドレスで構成されたLANの中にウェブサーバとDBサーバを置くのが普通。
おまいらDB間のやるとりはSSHでしょ?
AppleTalkだよ。
ウチはRFC1149準拠。夜間の速度が出ないのが悩み
>>757 たかだか、というけど、メモリ上限のあるVPSとか借りてると結構辛いよ?
ホシュ
クシュ
773 :
aaz :2006/11/05(日) 22:15:22 ID:???
asd D
774 :
aaz :2006/11/05(日) 22:18:49 ID:???
今更だが このスレって負荷軽減の邪魔する委員会なんだろ?
776 :
nobodyさん :2006/11/26(日) 22:29:27 ID:3LCl7xig
PHP+MySqlでユーザー認証する時、DBにはユーザーのIDやパス他の情報があるとします。 仮にそれはもうめちゃくちゃユーザーが登録されていて(かなりの負荷)、DBの読み書きをする場合以下の2つのパターンだとどちらが負荷がかからないでしょうか? 速度の点についても知りたいです。 1.1つのテーブルに全員分登録しておき、普通に読み書きする。 2.ファイルに「ID+その人が使用するテーブル」を記述しておき、それを読み込んでから、複数用意されてるテーブルの中から指定されたテーブルを動的に選択して、読み書きする。 どうなんでしょ?質問+保守上げ。
777 :
nobodyさん :2006/11/26(日) 22:33:49 ID:3LCl7xig
あ、2の複数テーブルはまぁ10個くらいとします。 仮にデータが50000件あれば1つのテーブルは5000件で済むということになりますよね?
2ちゃんねるってデータベース使ってるんですか?
>>776 試して測ってみんなに報告。これで皆幸せ。
多分1の方が効率的だと思うけど。
782 :
776 :2006/11/27(月) 08:15:18 ID:c6HTdBMZ
レスありがとうございます。やっぱり1ですかね。 2だと他に色々やりたい時不便になってきますよね。 地道にプログラム面を改善していった方がいいのかもしれませんね。
>>778 2chはテキストファイルベースです
言語はC
>>776 1の方
DBの負荷を下げたいのなら、テキストファイルベースの処理を上手く使うといい
2chはperl+SpeedyCGIで、一部Cじゃなかったっけ?
bbs.cgi=Perl read.cgi=C だったかと
bbs.cgi=Perl; read.cgi=C;
リレーションがいらないなら、フラットなただのテキストファイルが早いんだね。当然か。
788 :
nobodyさん :2007/01/30(火) 02:11:44 ID:yyajzISr
掲示板の画像をダウソツールで根こそぎかっぱらっていく不届き者を特定した さて、貴方ならどのような方法でdenyする?
アクセスポイント絞りの範囲指定で.htaccess。
閉鎖
>>788 ダウソツールとわかるUserAgentならまずそいつを403へ
次に一定間隔の連続or同時接続を503へ
それでも懲りないならFWで叩き落す。
792 :
nobodyさん :2007/02/26(月) 07:23:03 ID:g5As6DDV
私も今、掲示板サイト作ってる途中なので、ちょっとカキコミさせてもらいますお JAVAなのでちょっとperl、PHPスレとは違うけど共通する部分はあるので。 私の場合、某フリーソースの掲示板を元々おいてたんですけど、レス数が3万をこえたあたりから ワード検索やレスのカキコミに非常に時間がかかるようになってしまいました。 そのCGI(PERL)はレスのログをテキストファイルに出力しているんですが、毎回何万行も読むんではそりゃ時間かかる なという感じになってしまいました。 そこで、新しく掲示板作る時には、DB使うべきなのか、それともログ出力用のテキストファイル使うべきなのか、HTMLファイルとして吐き出す べきなのか、どれがいいとおもいますか? 2chとかはオーバーヘッド対策でDB使わない仕様にしてると聞きました。 やっぱDBにするメリットはオーバーヘッド考えると皆無なんでしょうか? HTMLファイルに書き出すってのは軽そうだけど検索用のメソッドをHTMLファイルに走らせると早いのかどうか不安な部分もあるんです。 関係ないのでしょうか?
日本語でおk
過去ログを小分けにすればいいじゃん。 2chだって1000レスか512kで別のスレ立てないといけないんだし。
>>792 DBのオーバーヘッドを心配しなければいけない程アクセスが予想されるなら、
表示はHTMLで出力、読み書きはテキストファイル(もちろん分割して)すればいいし、
そうでもないならDB使えばウンコみたいに楽ちん。
796 :
nobodyさん :2007/02/27(火) 01:43:49 ID:Sbf00PNr
>>794 >>795 DB使わない前提で考えると
ということは、1スレごとにHTMLファイルを作ったほうがいいんでしょうか?
1スレ、1ファイルにしたら何万ファイルもできちゃいっても大丈夫なんでしょうか?
798 :
nobodyさん :2007/02/27(火) 21:43:24 ID:UMgu+4mi
>>797 大変参考になりました。
こんなに役に立った外部リンクは初めてです。
本当にありがとうございます。
最初grep型の検索しか考えてなかった自分の低脳ぶりがはずかしいですw
結局、スレごとに1ファイル書き出して、Luceneを実装してこれでインデクシングして検索に対応することにしました。
Namazuに比べるとどうかな?と最初は考えてましたが、wikipediaでの採用実績を考えると問題ないとおもいましたので。
1スレ1ファイルをテキストファイルで生成して、XSLTで整形してHTML表示しようとおもいますが、YSTやGOOGLEのSEOを考えると、
最初からHTMLとしてファイル生成したほうがいいとおもいますか?
テキストファイルで生成するとpageRANKつかないですよね?
>>798 何いってんのかよくわかんねえけど
ページランクはHTMLで書いてあれば、どんな形式でもつく。
801 :
nobodyさん :2007/04/19(木) 09:38:42 ID:80HBTeap
おいコラ 1分おきに画像掲示板に底引き網かけてるやつ 死ね!おまえだよおまえ→.kngwnt01.ap.so-net.ne.jp 丸ごと永久規制してやってもまだやってやがる 何時間PC付けっぱなしなんだよ 火事になって死ね
802 :
nobodyさん :2007/05/05(土) 17:01:11 ID:429gUmit
保守
803 :
nobodyさん :2007/06/21(木) 00:36:03 ID:sn0UC2wW
質問させてください。 Webサーバ上にあるファイル(バイナリ含む)をファイルパス直接指定でダウンロードする(させる)のと、 以下のようにperlのcgiを通してダウンロードさせるのではどのくらい負荷が違うのでしょうか。 … binmode(STDOUT); while(1){ read(FILE, $buf, $bufsize); last unless (length($buf)); print $buf; } … 目的は、IEで日本語ファイル名のファイルをダウンロードするときに ファイル名が文字化けするのを防ぐためです。 つまりapplication/octet-streamやContent-Disposition: attachment; filename=を付けるためだけのCGIです。 もしダウンロードしている間ずっとCPU時間を使っていたら大変だと思いまして。 例えばファイルパス名指しで直接アクセスした場合の負荷を1として、 CGIを使うと10くらいになるのかあるいは1.1くらいなのかの目安が知りたいのです。 bufsizeは1024です。「bufsizeをこう変えたら負荷が減る」というアドバイスなどもあれば助かります。
804 :
nobodyさん :2007/07/03(火) 19:21:20 ID:E54Y+fni
ECサイトCGI(ZenCart)は CPU負荷が特別高いのでしょうか。 ご教授お願い致します。
スレ違い
究極の負荷削減はクライアントPCで処理をたくさん行わせる手法である
基地外
808 :
nobodyさん :2007/07/06(金) 19:46:39 ID:ZTnm/2V7
809 :
nobodyさん :2007/11/24(土) 04:42:26 ID:0kYCB2/U
やたーダウソツールで画像に底引き網をかけてる奴を .htaccessに放り込むスクリプトができたよー(^o^)ノ
うp
811 :
nobodyさん :2008/01/08(火) 01:01:23 ID:hTVbQiHi
ほ
812 :
nobodyさん :2008/03/16(日) 13:10:53 ID:wXI+Q9fC
ほ
すべてのアクセスを拒否れば負荷はほとんどなくなるアルよ。
814 :
nobodyさん :2008/04/24(木) 08:07:46 ID:Ey7r9OAL
次のものは負荷はかかるでしょうか? ・ランキングは使わないが登録人数が300人を超すCGIゲーム(50分おきに送信) ・FLASHやJAVAを表示するCGI(1個約2MB、合計12個を1つずつ表示)
816 :
nobodyさん :2010/11/02(火) 12:36:44 ID:ZRssODmy
∧_∧
( ・∀・) | | ガガッ
と ) | |
Y /ノ .人
/ ) .人 < >_∧∩
_/し' < >_∧∩`Д´)/
(_フ彡 V`Д´)/ / ←
>>434 / ←
>>277
818 :
nobodyさん :
2015/01/01(木) 18:10:33.33 ID:3Aike0jC 公明党ならきっとやってくれる、宗教法人課税の導入