mixC++ 技術開発者の日記
C言語交流フォーラム ~ mixC++ ~ の技術管理者を務めている、御津凪(みつなぎ)の日誌。
自分のHPは既に持っているので、ここの内容は mixC++ 中心の日誌です。
こっちの作業に注力して中々自HPに手をつけれていないものの、訪れてくれると嬉しいです。
HP : http://mitsunagistudio.net/

新生掲示板(仮)開発報告日誌1

アバター
御津凪
管理人
記事: 200
登録日時: 15年前
住所: 道内
連絡を取る:

新生掲示板(仮)開発報告日誌1

投稿記事 by 御津凪 » 14年前

昨日の会議に集まった方々、ありがとうございました。

見に来られなかった方や、見なかった方も、結果のログは下記トピック内のチャットURLからご覧いただけます。
http://www.play21.jp/board/formz.cgi?ac ... &rln=64250

さて、会議内では様々な要望や感想が聞けました。

これを踏まえ、現在用意されているテストサイト(新生掲示板(仮)とでも呼びましょうか)に反映をさせていきたいと思います。


現在のおこないとしての第一に「mixCのデータを移植する」という目標があります。

周知の通り、 OpenPNE と phpBB は全く別のWebアプリケーションです。もちろんデータ構成に互換性はありません。

しかしながら、双方とも MySQL というデータベースに、皆さんのプロフィールや日記などの情報を全て格納しています。

そのため、構造を OpenPNE から phpBB にコンバートする処理を用意すれば、簡単にデータの移行が行えます。

なお、移植出来ないデータが一つだけあります。それは皆さんの秘密の情報を守る「パスワード」です。

これは移植時に仮パスワードをそれぞれ生成・設定し、移行時にそれを使ってログイン、後にそれぞれがパスワードを設定し直す、といった方法で考えています。(パスワードを忘れた時の再発行の手順と同じです)

さて、当分の間、このコンバートコードを書く為に、次回の正式なお披露目は未定となっています。
ですが、そう遠くない日(早くて二週間以内)ですので、心待ちにしていてくださいね。


以下長文。

まだ「phpBB だとどれほど今の掲示板より重く(またはmixCより軽く)なるか」について結構あいまいな認識があるので、ここに書いておきます。

現在の掲示板はレンタルして運用されており、それは専用の(掲示板をレンタルしている)サーバーに置かれています。

この掲示板は単純な構造で且つ最適化されている可能性が高く(私は詳しく知りません)、サクサク表示できることが多いです。


mixC は専用サーバーにあるわけではなく、 Dixq さんが使っているサーバー内(龍神録等のページが置かれている場所)に存在しています。

いつも見るページは、単にサーバーからページをダウンロードして表示している為、表示速度は回線の速さに比例します。(この速度が今のサーバーで出し得る最大速度ということになります)

しかし、 mixC内 のページは PHP と呼ばれる言語を使い、ページを処理・構成してからダウンロードされます。

この「ページを処理・構成」の部分が mixC が重くなっている原因となっています。

mixC が重い理由には二つあります。

一つ目はとても重い処理を多用していることです。

mixC は OpenPNE と呼ばれる SNS Web アプリケーションを使用していると散々書いていますが、この OpenPNE で使われているコードには、とても遅くなる処理の一つであるマジックメソッド(特に __autoload)を多用しているというものです。

__autoload というのは、簡単に言うと、必要なファイルを必要な時に自動でインクルードするものです。

また、 OpenPNE はファイルが約 7,000 弱という、非常に多く、その半数が __autoload の対象ファイルとなっていて、遅くなっている原因の大部分を占めています。

もう一つは、 MySQL との通信の仕方に問題があることです。

MySQL などのデータベースは、読み込みより書き込みが遅いのが普通です。しかしそれが遅い原因ではありません。

読み込みでも、最適化出来れば早く読み取ることが出来ますが、最適化されてなかったり、出来ない個所が多いらしく(調べていないので不明)、それが原因で簡易的なチャットページよりもマイページの方が重かったりしています。

その対策としてキャッシュする機能も備わっているのですが、結局一つ目の問題により余り効果が出ていません


phpBB は、上記に上げた __autoload 等のマジックメソッドは一切使われておらず、ファイル数も OpenPNE と比べ、およそ 8 分の 1 となっています。(だからと言って 8 倍速くなるというわけではありませんが)

また、キャッシュ機能も搭載している為、日常的に重いこともほとんどありません。

しかしながら、「ページを処理・構成」をしていることに変わりない為、静的なページを表示するより重いです。


そういえば、「ユーザーがたくさん集まった時に重くならないのか?」という疑問もありました。

データとしての意味であれば、 MySQL を使用している為、(最適化していない場合)4,5桁レベルまで行かない限り、重さはほとんど変化しません。

アクセスが集中するという意味では、静的なページより重くなりやすいですが、 mixC のようにすぐにエラーが出ることはないでしょう。

最後に、「今の掲示板よりなぜ遅いのか」という点ですが、単純に複雑構造であるが故ということもありますが、コードの言語が違う(多分Perlではないかと思う)という点もあるかと思われます。

以上が、そういった感じの立場にある phpBB です。


色々書いていたら凄く長くなってしまいました。

今回はこれまでにしますね。
最後に編集したユーザー 御津凪 on 2010年11月28日(日) 20:55 [ 編集 2 回目 ]

コメントはまだありません。