■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50

プログラマが2chを救う!?

268 :デフォルトの名無しさん :2001/08/26(日) 03:21
とりあえず当面の問題は、圧縮とLast-Modifiedで回避できたと見て
良いのかな。

269 :デフォルトの名無しさん :2001/08/26(日) 03:22
なんかweb板でjavascriptんとこはこっちでやるみたいな事
言ってんだけどどうする?

270 :デフォルトの名無しさん :2001/08/26(日) 03:23
>>269
えー・・

271 :mahm :2001/08/26(日) 03:24
someReplaceは
こっちのほうがよくない?
一応動作確認済み。

int someReplace(char * src, char * des, char * str0, char * str1 )
{
char temp[SIZE_BUF];
char *temp_end = temp;
char *temp_start = temp;
int str0_length = strlen(str0);
int str1_length = strlen(str1);

/* 置き換える文字列を取っとく */
strcpy( temp, src );

*des = '\0';

/* まだ文字列が残っていればループ */
while (*temp_end) {

/* 置き換えるべき文字列の位置を取得 */
temp_end = strstr( temp_end, str0 );
if (temp_end == NULL) {
break;
}
*temp_end = '\0';

strcpy(des, temp_start);
des += (temp_end - temp_start);

strcpy(des, str1);
des += str1_length;

/* 部分文字列以後の文字列の位置を返す */
temp_end += str0_length;
temp_start = temp_end;
}
strcpy(des, temp_start);
return 1;
}

272 :79 :2001/08/26(日) 03:28
>>267
someReplace 関数と doReplace 関数が統合できたと思ったんですが、
someReplace 以外にも doReplace をコールしているところが
あるので、doReplace は消せません。
結局2つの関数を用意する必要があるみたいです。

273 :デフォルトの名無しさん :2001/08/26(日) 03:28
とりあえず、外から呼ばれない関数、特に一回しか呼ばれない奴はstaticにして、コンパイラにインラインさせる。
ちゃんとオプティマイズしてコンパイルする。出来たバイナリはstripする。

あと、read.cgiではないが、書きこんだときトップページにジャンプするが、
それをやめて、「書きこみました。掲示板に戻るにはここをクリック」程度のメッセージを
表示するにとどめて、index2.htmlの読み込みを減らす。

274 :デフォルトの名無しさん :2001/08/26(日) 03:29
doReplaceと改良版someReplace両方残せばいいのでは

275 :デフォルトの名無しさん :2001/08/26(日) 03:29
>>251
酷いいわれようだ、
でもこれじゃあしょうがないか>>148
というわけで修正しとく
lineMax = 0;
for(i=j=0;i<zz_fileSize;i++)
{
if(BigBuffer[i] == '\0') BigBuffer[i] = '*' ;

if(BigBuffer[i] == '\n')
{
if(lineMax <= RES_RED) BigLine[lineMax++] = (char *)&BigBuffer[j];
BigBuffer[i] = '\0'; j = i + 1;
}
}
これでも元のプログラムと等価じゃないっす

276 :デフォルトの名無しさん :2001/08/26(日) 03:30
>>274
両方改良すれば?

277 :デフォルトの名無しさん :2001/08/26(日) 03:34
「最新レス100を表示」を押したときの挙動が変?
レスが全部表示されないときがあるんだけど、どう?
「レスを全部表示」と比べてみて

278 :デフォルトの名無しさん :2001/08/26(日) 03:35
今ボトルネックになってるとこはどこ?
以前公開した時はファイルの読み書きだったけど。

279 :277 :2001/08/26(日) 03:37
ゴメン、他の擦れに解決法出てた。


IE だったら、キャッシュを強く優先する設定になってるからじゃないかな。
[ツール] - [インターネット オプション] - [インターネット一時ファイル]
の [設定...] ボタンを押して、 [保存されたページの新しいバージョンの
確認] のチェックを「ページを表示するたびに確認する」にしてみて
ください

280 :>278 :2001/08/26(日) 03:37
転送バイトあたりにかかる「お金」。
なのでできるだけデータ量を抑えたい。
CPU、メモリなどのリソースの問題ではないみたい。

281 :デフォルトの名無しさん :2001/08/26(日) 03:40
>>170
そもそもprintf系って標準関数の中では激重な部類に入るので、
可変引数ないところはputsにするとか。

ま、それでもzip圧縮とか平気でやってしまってるCGIでは
違いはまったく分からん思います。せいぜい0.1%くらい?(w

282 :デフォルトの名無しさん :2001/08/26(日) 03:41
2chが潰れなっかたのはUNIX板の在日同朋のおかげニダ
2chネラーは感謝汁

283 :デフォルトの名無しさん :2001/08/26(日) 03:42
>>280
ここは圧縮にかかるコストが新たに加わったから、サーバの負荷を
減らすためにread.cgiの最適化をするスレでしょ。
それを踏まえて聞いたんだけど。

284 :デフォルトの名無しさん :2001/08/26(日) 03:44
CGIの改良ではないが、転送量を減らす方法としてこういう方法は使えないか?

index2.htmlをindex.cgiというCGIに飛ばすページに変更する。
昔通りのindex2.htmlを作らずに、index.gz等の名前でGZIPしたデータを作る。
index.cgiはindex.gzをGZIP圧縮プロトコルで転送する。
こうすれば、apacheはそのままで、転送毎の圧縮を避けつつ、indexを圧縮転送できる。

285 :>283 :2001/08/26(日) 03:45
文字列・バッファ処理全般。ちょっとみればわかるけどとにかくコードの質が低い。

286 :デフォルトの名無しさん :2001/08/26(日) 03:46
向こうは一段落着いたみたいですね。

287 :デフォルトの名無しさん :2001/08/26(日) 03:47
>ここは圧縮にかかるコストが新たに加わったから、サーバの負荷を
>減らすためにread.cgiの最適化をするスレでしょ。

そ、そうだったのか。

288 :デフォルトの名無しさん :2001/08/26(日) 03:52
こちらに移ってまいりました

289 :デフォルトの名無しさん :2001/08/26(日) 03:53
つーかread.cgiというネタをみんなで弄るスレです。

290 :デフォルトの名無しさん :2001/08/26(日) 03:53
画面仕様は据え置きで全面書き換え目指した方が良くね?
今のソースはどうかしらんが、大本の時のread4.cなんて
意味のわからんヘッダ付いてたし、
セミコロンの前に何故かタブ入ってるし。

291 :デフォルトの名無しさん :2001/08/26(日) 03:53
>>267にまとまってるみたいですね。

292 :デフォルトの名無しさん :2001/08/26(日) 03:53
そろそろ、こっちに移動するみたいだよ

293 :デフォルトの名無しさん :2001/08/26(日) 03:55
とりあえず、今の課題は「セキュリティホールだけつぶしてしまおう」ということで、こちらに移ってきました@UNIX板
よろしくお願いします。

294 :デフォルトの名無しさん :2001/08/26(日) 03:55
リロードの回数を減らす仕組み。
1回のリロードで流れるデータの量を減らす方法。
について考えた方が良くない?

もちろんコードの最適化も必要だけど

295 :デフォルトの名無しさん :2001/08/26(日) 03:56
状況によって(将来転送量が大きくなったら)制限かけられる仕様が欲しくない?

296 :デフォルトの名無しさん :2001/08/26(日) 03:57
スレ分けない?
ネタ系、セキュリティホール系、最適化系とか。

297 :デフォルトの名無しさん :2001/08/26(日) 03:57
かぶったしかも上げてしまった。ごめん。

298 :デフォルトの名無しさん :2001/08/26(日) 03:57
あ、こっちに移動なん?
ls=付いてないとデフォルトで最新50のみ表示、とかはどーなったの?
転送量減ると思うんだけど・・

299 :デフォルトの名無しさん :2001/08/26(日) 03:57
他のCGIも見直したいんだが、大昔のソースしか持ってないからな〜

300 :デフォルトの名無しさん :2001/08/26(日) 03:58
じゃあdatファイルの構造から変えたほうが
いいかもね。

301 :デフォルトの名無しさん :2001/08/26(日) 03:59
49 名前:名無し 投稿日:2001/08/26(日) 03:58
 read.cgi を全面書き換えという案が浮上してます。
 いそいでプログラム板に結集して下さい。

おいおいすごい重責になってきたぞ(w

302 :デフォルトの名無しさん :2001/08/26(日) 03:59
最新版
ftp://210.170.217.35/incoming/perler/read4.c.5

303 :デフォルトの名無しさん :2001/08/26(日) 03:59
とりあえず<>使うのやめない? tabで良いじゃん。

304 :デフォルトの名無しさん :2001/08/26(日) 03:59
read.cgi以外のソースはUpされてないのでしょうか。
ほかのCGIが無いと2ちゃんねる全体の機構が把握できないので。

305 :デフォルトの名無しさん :2001/08/26(日) 04:00
大元のプログラムとデザインは分離しません?
そのほうが効率的だと思います

306 :デフォルトの名無しさん :2001/08/26(日) 04:01
>>302
こっち
ftp://210.170.217.35/incoming/perler/read4-blank.c.25

307 :302 :2001/08/26(日) 04:01
>>306
ごめんなさい&ありがとう

308 :デフォルトの名無しさん :2001/08/26(日) 04:02
みんなで力を合わせれ!

gzip 圧縮や Last-Modified 対応など
転送量軽減に関する話題は↓こちらでお願いします。
2ch閉鎖の危機なんだと(Part2.1) @UNIX板
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998754174

read.cgi の無駄なコードの省略や高速化など
関数毎の最適化については↓こちらでお願いします。
プログラマが2chを救う!? @プログラム板(このスレです)
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998736516

無駄なタグの消去やHTMLの修正などは↓こちらでどうぞ。
スキルの高い方知恵を貸してください @web制作管理板
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998741961

応援やグチ、今後の2chはどうなるか、
何故この事態が起こったかなどの議論は↓こちらでどうぞ。
UNIX板で2chのプログラムを開発中 パート2 @批判要望板
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998757160


他の板の住人へ

ここのURLを張らないで応援板のURLを張ってください。
馬鹿が多く来て話になりません。
(事態は収束に向かいつつあるよ。みんなすごすぎだyo!)

309 :デフォルトの名無しさん :2001/08/26(日) 04:02
>>305
やっぱformのからみとかでjavascriptんとこはweb板のがいーよね?
じゃそーゆー風に頼んできていい?

310 :デフォルトの名無しさん :2001/08/26(日) 04:02
>>284でうまく動作すれば当座の問題は解決するような気がする

311 :aki :2001/08/26(日) 04:03
こっちにも書いておこう。ミラー。5分おき更新。
http://www.gedoh.org/aki/2ch/210.170.217.35/incoming/perler/

312 :デフォルトの名無しさん :2001/08/26(日) 04:03
いや、read.cgi しかいじれないんだってば・・

313 :デフォルトの名無しさん :2001/08/26(日) 04:04
>>309
いいよ

314 :デフォルトの名無しさん :2001/08/26(日) 04:05
こちらの方は完全にソースを見直して最適化する方向のようですので、
とりあえず、現行のcgiでセキュリティホールをつぶす作業は、引き続きUNIX板で行います。

315 :デフォルトの名無しさん :2001/08/26(日) 04:06
>>309
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998741961

316 :デフォルトの名無しさん :2001/08/26(日) 04:07
このスレ用にアップしました。
ftp://210.170.217.35/incoming/html/

317 :sage@sage.com :2001/08/26(日) 04:08
>>275
すまん。ちょっといいかげんに作りすぎた。
修正THX

318 :デフォルトの名無しさん :2001/08/26(日) 04:10
UNIX板とこの板で、開発Verを変えた方がいいですね。
混乱の元ですし。

319 :名無しさん :2001/08/26(日) 04:10
みんなで力を合わせれ!

gzip 圧縮や Last-Modified 対応など
転送量軽減に関する話題は↓こちらでお願いします。
2ch閉鎖の危機なんだと(Part3.1) @UNIX板
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998764722

read.cgi の無駄なコードの省略や高速化など
関数毎の最適化については↓こちらでお願いします。
プログラマが2chを救う!? @プログラム板
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998736516

無駄なタグの消去やHTMLの修正などは↓こちらでどうぞ。
スキルの高い方知恵を貸してください @web制作管理板
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998741961

応援やグチ、今後の2chはどうなるか、
何故この事態が起こったかなどの議論は↓こちらでどうぞ。
UNIX板で2chのプログラムを開発中 パート 3 @批判要望板
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=998765190


他の板の住人へ

ここのURLを張らないで応援板のURLを張ってください。
馬鹿が多く来て話になりません。
(事態は収束に向かいつつあるよ。みんなすごすぎだyo!)

320 :UNIX板住人 :2001/08/26(日) 04:11
ちょっとお邪魔します
何かPHPとかJservにすれば CGIのように別プロセスを起動しないから
サーバ負荷が軽減されるとかいう話が出てるようですが 実際のところ
PerlのCGIならそうかも知れませんが 最初からバイナリコードに
なっているCのCGIの方が PHPやJservより軽いはずですが

あえて別プロセス起動をしないというメリットを追求したいのなら
  ・ Apacheモジュールの形で実装する
  ・ Apache自体使うのをやめて2chの掲示板システムを
   アプリケーションサーバの形で作ってしまう
   マルチスレッドで動くようにすれば相当軽くなる
の方がいいのかも知れません 手間は相当かかりますが

321 :316 :2001/08/26(日) 04:11
スマソ。直す所があるので、一時的に消しました。

322 :デフォルトの名無しさん :2001/08/26(日) 04:12
スキルの高い方知恵を貸してください @web制作管理板
http://natto.2ch.net/test/read.cgi?bbs=hp&key=998741961

ここからコピペ。

【現状の提案】
 ・表示色関係は各ユーザーにまかせる
 ・説明がきを別にする
 ・altは無し
 ・自動リンクを外す
 ・リンク部分を極力なくす(・index2.htmlの「■▲▼」廃止 )
 ・<body>にする
 ・タグは小文字に統一(関係なし)
 ・GZIPで圧縮のしやすいよう、出来るだけパターンがあると良い
 ・タグは極力短縮する
 ・対応ブラウザなどに関しては諦めも肝心
 ・転送量を減らすため、ユーザーに画一的な情報はキャッシングさせると尚良いかも
 ・クッキーを無くす (←有無両意見アリ)
 ・<pre>の使用 (←最後の手段)
 ・sage age の簡略化
 ・tdとかの要素にCSSをhead内で宣言
 ・<br>廃止
 ・TEXTAREA 等のsize=?を小さく
 ・スレッドをtableで囲うのをやめてスレッドをhrで区切る(最後の手段2)
 ・<B>タグと<FONT>タグとりあえず消してみよーよ。
 ・CSS → ブラウザによる環境悪化が無く、下位互換性があり、転送量が減るのなら歓迎します。
 ・巡回ロボットお断り→ロボットも客。やるなら /robots.txtに書いてサイト全体に適用
 ・ふぉれすとぐり〜ん → #282

【表示関連】
 ・名前表示  名無し 01/08/26 00:00
 ・レス取得  最新50 レス1-100
 ・age sage  「+,-」「^,_」「↑,↓」「a,s」
 ・フォーム  post name mail

【呼びかけ】
 ・話題のループ防止のためレスを全部把握しておく
 ・純正以外の看板画像は別鯖なのでトラフィックに問題なし
 ・<pre>は仕様が決定後に検討

323 :名無しさん :2001/08/26(日) 04:15
>>320
プロセス負荷はCでもかかるよ。
PHPやJAVAはサーバ屋さん側の意向で使えないんだと聞いている。

324 :デフォルトの名無しさん :2001/08/26(日) 04:16
2ちゃん鯖でPHPは使えるとどこかで見かけたような・・・
まぁCの方向でいいだろうと思うが

325 :316 :2001/08/26(日) 04:16
再アップしました。この板のVerは10.xです。

326 :デフォルトの名無しさん :2001/08/26(日) 04:16
フリーのwikiなサイトってどっかないのかな?
こういう作業はwikiでやるのがよさげなんだけど。

327 :デフォルトの名無しさん :2001/08/26(日) 04:17
>>325
サンクス
そのsourceを元に手を加えていきましょう

328 :デフォルトの名無しさん :2001/08/26(日) 04:18
BadAccess関数の最適化。
strstrのかわりなる物を作ってみた。
strstrがどんな仕組みで動いているかしらないので、本当に速いのかどうか・・。

// text2 (検索する文字列)の長さが255以下の場合でしか動かない
char *strstr_BM256(char* text, char* text2) {

char tail;
unsigned char skip[256];
unsigned int len = strlen(text2), longlen = strlen(text), i, x, y;

if (longlen < len) return NULL;
tail = text2[len];

// 長さが1の時の対策は省略

memset(skip, (unsigned char)len, 256);
for (i = 0, len--; i < len; i++)
skip[(unsigned char)text2[i]] = (unsigned char)(len - i);
// i = len - 1;
while (i < longlen) {
if (text[i] == tail) {
x = i; y = len;
while (text[--x] == text2[--y]) {
if (y == 0) return &text[x];
}
}
i += skip[(unsigned char)text[i]];
}
return NULL;
}

329 :名無しさん :2001/08/26(日) 04:19
PHPとか、Apache moduleとかの話になると、
サーバ屋さんの意向を確認した方がいいと思う。
mod_gzipは使えないとかUNIX板でやりとりがあったようだし。

330 :デフォルトの名無しさん :2001/08/26(日) 04:21
>mod_gzipは使えないとかUNIX板でやりとりがあったようだし。

来週末あたりに結論が出るらしい。使える可能性が高いようだ。

331 : :2001/08/26(日) 04:21
>>329
mod_gzipはすでにOKになったはず

332 :331 :2001/08/26(日) 04:22
あれ?まだ決定じゃなかったのか・・・スマソ。

333 :デフォルトの名無しさん :2001/08/26(日) 04:22
piza2鯖にはPHP4.0.3pl1が入っています。
だから、PHPが使えないって事はないと思います。

334 :デフォルトの名無しさん :2001/08/26(日) 04:24
つーかPHP使えるかどうかはともかくCでいいんじゃないの

335 :デフォルトの名無しさん :2001/08/26(日) 04:25
サーバ負荷はとりあえず今は気にしないで良いんじゃなかった?

336 :329 :2001/08/26(日) 04:25
>>330
うん、ごめん。
えーと、オレが言いたかったのは、そのへんの話は
みんなサーバ屋さんのお許しをもらわなきゃならない、ってこと。
ここで「これがいい」って決めたあとで、
サーバ屋さんに一蹴されちゃうのも悲しいじゃん。

337 :aki :2001/08/26(日) 04:26
>>326
試しにyukiwiki置いてみました。ご自由に。
http://www.gedoh.org/aki/2ch/wiki/

実は自分ではあまり使ったことが無いんですが……。

338 :316 :2001/08/26(日) 04:26
read4-blank.c.25は問題があるそうなので、read5.01.02.cに差し替えました。

339 :デフォルトの名無しさん :2001/08/26(日) 04:27
>336
いや。だから、鯖屋との相談の結果の話なの。

340 :309 :2001/08/26(日) 04:27
なんか無視されてたっぽいけどjavascriptんとこは向こうに頼んできた。

341 :名無し :2001/08/26(日) 04:28
PHPとCではどっちが負荷が少ないの?

342 :デフォルトの名無しさん :2001/08/26(日) 04:28
>>328
>strstrがどんな仕組みで動いているかしらないので、本当に速いのかどうか・・。

BSDのソースとか見ればいいじゃん。

343 :名無しさん || die :2001/08/26(日) 04:29
>340
JavaScriptをどうするって話?
もっと削れと?

344 :デフォルトの名無しさん :2001/08/26(日) 04:29
>>341
内容による。

345 :デフォルトの名無しさん :2001/08/26(日) 04:31
>>338
piza2鯖に反映されるらしい
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=998764722&st=120&to=124&nofirst=true

346 :309 :2001/08/26(日) 04:32
>>343
コードの最適化とかそんなん。
変数名縮めるとかHEADにまとめるとか。

347 :デフォルトの名無しさん :2001/08/26(日) 04:33
>>346
Javascriptを別ファイル化するって話は出てないんですか?

348 :デフォルトの名無しさん :2001/08/26(日) 04:35
>>347
で?
どこに置くの?

349 :名無しさん || die :2001/08/26(日) 04:36
>>346
了解。

>>347
サイズが小さいから転送ファイル数が増える方が痛い。

350 :デフォルトの名無しさん :2001/08/26(日) 04:36
>>348


351 :326 :2001/08/26(日) 04:37
>>337
すばらしー。とりあえずちょっとページ・リンクを追加しました。
今スパゲティー茹でてるんでもうちょっとしたら整理します。

352 :デフォルトの名無しさん :2001/08/26(日) 04:38
>>333
PHPが使えても、apacheのmoduleとして使えないと
perlよりむちゃ遅いよ。

353 :デフォルトの名無しさん :2001/08/26(日) 04:39


354 :309 :2001/08/26(日) 04:39
>>347
あーなんかCSSとjavascriptを別ファイルにするとかも言ってたような・・
ごめん向こうあんま読んでない(w
とりあえずprintfで吐き出す定型内容についてはこっちは気にしないって事で。

355 :デフォルトの名無しさん :2001/08/26(日) 04:42
read.cgiが5.02になったみたい

356 :素人 :2001/08/26(日) 04:45
夏休みが終われば転送量が自然に減るような気がしますが・・

357 :デフォルトの名無しさん :2001/08/26(日) 04:45
>>356
その案採用

358 :デフォルトの名無しさん :2001/08/26(日) 04:47
夜勤さんの書きこみを見る限り、
6月か7月あたりからやばそうだったらしいが。

359 :デフォルトの名無しさん :2001/08/26(日) 04:49
>>356
そう思うけど、実は減ってないんだってさ。

360 :デフォルトの名無しさん :2001/08/26(日) 04:52
test

361 :デフォルトの名無しさん :2001/08/26(日) 04:57
177 名前:369 ◆3XTuRnAc 投稿日:2001/08/26(日) 04:52
>名無し娘。さん
えと、IPがまた変わりました。っていうかまたモデムが落とされた模様(^^;;。
ftp://210.170.170.131/
です。

182 名前:aki 投稿日:2001/08/26(日) 04:55
>>369さん
ミラー元直しておきました。
http://www.gedoh.org/aki/2ch/210.170.170.131/incoming/

これで寝ちゃうので、これ以後IPアドレス変わったらごめんなさい。
メール頂ければ直せるかも。

362 :名無しさん@ミポリソ@UNIX板 :2001/08/26(日) 05:00
あと思ったのは 弾くブラウザ等の設定項目とか挿入バナーなんかは
ハードコーディンクより設定ファイルからの読み込みにした方が
よさげでは? とか思ったり

363 :デフォルトの名無しさん :2001/08/26(日) 05:03
今回の圧縮の効果
・圧縮効果1/16
・圧縮対応ブラウザが70%
であれば、70%*1/16+1*30%=34%

Last-modifiedの効果も全体に利くとしても、目標の1/3にギリギリ
達したに過ぎない。HTMLのスリムかも含め、ゴリゴリ推し進める
ことが必要だ……

364 :デフォルトの名無しさん :2001/08/26(日) 05:03
>>362
確かに

365 :デフォルトの名無しさん :2001/08/26(日) 05:04
よし、まず中高生の夏休みを短縮してもらおう!!>>356

366 :素人 :2001/08/26(日) 05:04
俺が2ちゃんをみんなに広めたせいでこんなことに。。
ごめんなさーい(;´Д‘)アア

367 :デフォルトの名無しさん :2001/08/26(日) 05:04
>・圧縮効果1/16

オヒオヒ

231KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30