ムーバブルタイプで3000エントリーの実験・・・限界を探る
ムーバブルタイプは約300エントリー前後で
再構築の際に動作が苦しくなると言われますが
そのなんと10倍の3000エントリーの
再構築にチャレンジしてみました。
使うデータは友達が運営している
某ショップの商品データと
そのHTML形式で書かれた商品説明文の
3000レコードです。
レコードの読み込みには
ムーバブルタイプ(MT3.2ja)の
管理メニューにある
読み込み/書き出し
の機能を使います。
ムーバブルタイプ(MT)の読み込みは
基本的にテキストベースの
ムーバブルタイプ(MT)専用のデータ形式の
テキストファイルでOKなので
某ショップのデータベースで管理されている
商品レコードを一旦エクセルで読めるように
CSV形式のファイルでデータベースから書き出します。
横一行が1レコードになりますので
縦に3000行あるCSVファイルの出来上がりです。
ムーバブルタイプ(MT)へのデータ変換は
VBAを使ってムーバブルタイプ(MT)用の
データに変換するプログラムを自作しても
よかったんですがムーバブルタイプ(MT)のデータ変換に
使える良いツールがありましたので
そちらを使用することにしてみました。
出来上がったムーバブルタイプ(MT)専用の
テキストファイルを文字コードEUCに変換して
いざムーバブルタイプ(MT)へ
読み込まそうとすると
日付の形式が正しくないって
ムーバブルタイプ(MT)がエラーを出します。
仕方ないのでエクセルのオートフィルの
機能をなんかを使って日付を付け加えて
再度ムーバブルタイプ(MT)用のデータを出力させ、
CSVからムーバブルタイプ(MT)用にデータ変換しました。
参考までにですがこのムーバブルタイプ(MT)用に
データ変換されたテキストベースのファイルサイズは
約10メガ位になりました。
2バイト文字の日本語で計算すると
一メガあたり約75万文字相当になるので
これを単純に1000倍すれば7億5千万文字となります。
イメージとしては一メガ約75万文字相当で
新聞約3日分と言われています。
7億5千万文字となれば3000日分に匹敵、
1年365日で計算すれば約8年分です。
ムーバブルタイプ(MT)用に
データ変換されたテキストファイルで
10メガと言えばいかに大きいファイルサイズで
あるかと言うことがお分かりですね!
ムーバブルタイプ(MT)のテキストデータは
下記のようになっています。
この形式で1エントリー分になります。
–一部変更ここから–
この部分にMTのバックアップファイルの
表示形式の書き込みをしていたのですが、
バックアップファイルからの読み込みが
上手くいかないことに気がつきこの部分削除してます・・・
バックアップファイルの形式を見たい方は
MTのユーティリティー⇒読み込み/書き込み
⇒エントリーの書き出しから
バックアップをとりテキストエディターで
直接開いてみてください・・・(>_<)
–一部変更ここまで–
ムーバブルタイプ(MT)用に
データ変換されたテキストベースの
ファイルの読み込みに、今回使用した
サーバーのマシンのスペックは
ペンティアム4の3ギガヘルツに
メモリー1ギガとかなりハイスペックな
サーバーマシンです。
データベースとしてはperlの
データベース拡張モジュールのsqliteを使用です。
いざムーバブルタイプ(MT)用に
変換されたデータの読み込みを始めてみると
CPU負荷99%でそのまま延々と
7時間強もかかりました。
途中あまりにも時間がかかるので
プロセスが止まってしまうかな?
と思いましたがそこはリナックス系のOS
だけあって止まりません。
もちろんムーバブルタイプ(MT)の
プログラムが優れている証拠でもあります。
ムーバブルタイプ(MT)のデータの読み込みに
7時間もかかりましたが逆に考えると
3000エントリーを7時間で終了したと思えば
手動でムーバブルタイプ(MT)の
エントリーをコピペでムーバブルタイプ(MT)に
3000エントリーもすることを思えば
比べ物にならないくらい早いとも考えられますね。
そして問題の全ての再構築ですが
約3時間でCPU負荷99%でしたが終了しました。
3000ものHTMLファイルを3時間で
出力するとはかなり予想より早かったです。
今回のムーバブルタイプ(MT)用に変換された
データ3000レコードを読みこまし、
再構築すると言う実験の結果から
専用サーバーでなければこのような離れ業は
共有サーバーでは実現不可能に近いってことで
現実的ではありませんね
以上、ムーバブルタイプ(MT)の
限界を探ってみる実験でした。
これからこのような処理をムーバブルタイプ(MT)で
行おうと思っている方、
いらっしゃいましたら是非参考にしてください。
再構築の際に動作が苦しくなると言われますが
そのなんと10倍の3000エントリーの
再構築にチャレンジしてみました。
使うデータは友達が運営している
某ショップの商品データと
そのHTML形式で書かれた商品説明文の
3000レコードです。
レコードの読み込みには
ムーバブルタイプ(MT3.2ja)の
管理メニューにある
読み込み/書き出し
の機能を使います。
ムーバブルタイプ(MT)の読み込みは
基本的にテキストベースの
ムーバブルタイプ(MT)専用のデータ形式の
テキストファイルでOKなので
某ショップのデータベースで管理されている
商品レコードを一旦エクセルで読めるように
CSV形式のファイルでデータベースから書き出します。
横一行が1レコードになりますので
縦に3000行あるCSVファイルの出来上がりです。
ムーバブルタイプ(MT)へのデータ変換は
VBAを使ってムーバブルタイプ(MT)用の
データに変換するプログラムを自作しても
よかったんですがムーバブルタイプ(MT)のデータ変換に
使える良いツールがありましたので
そちらを使用することにしてみました。
出来上がったムーバブルタイプ(MT)専用の
テキストファイルを文字コードEUCに変換して
いざムーバブルタイプ(MT)へ
読み込まそうとすると
日付の形式が正しくないって
ムーバブルタイプ(MT)がエラーを出します。
仕方ないのでエクセルのオートフィルの
機能をなんかを使って日付を付け加えて
再度ムーバブルタイプ(MT)用のデータを出力させ、
CSVからムーバブルタイプ(MT)用にデータ変換しました。
参考までにですがこのムーバブルタイプ(MT)用に
データ変換されたテキストベースのファイルサイズは
約10メガ位になりました。
2バイト文字の日本語で計算すると
一メガあたり約75万文字相当になるので
これを単純に1000倍すれば7億5千万文字となります。
イメージとしては一メガ約75万文字相当で
新聞約3日分と言われています。
7億5千万文字となれば3000日分に匹敵、
1年365日で計算すれば約8年分です。
ムーバブルタイプ(MT)用に
データ変換されたテキストファイルで
10メガと言えばいかに大きいファイルサイズで
あるかと言うことがお分かりですね!
ムーバブルタイプ(MT)のテキストデータは
下記のようになっています。
この形式で1エントリー分になります。
–一部変更ここから–
この部分にMTのバックアップファイルの
表示形式の書き込みをしていたのですが、
バックアップファイルからの読み込みが
上手くいかないことに気がつきこの部分削除してます・・・
バックアップファイルの形式を見たい方は
MTのユーティリティー⇒読み込み/書き込み
⇒エントリーの書き出しから
バックアップをとりテキストエディターで
直接開いてみてください・・・(>_<)
–一部変更ここまで–
ムーバブルタイプ(MT)用に
データ変換されたテキストベースの
ファイルの読み込みに、今回使用した
サーバーのマシンのスペックは
ペンティアム4の3ギガヘルツに
メモリー1ギガとかなりハイスペックな
サーバーマシンです。
データベースとしてはperlの
データベース拡張モジュールのsqliteを使用です。
いざムーバブルタイプ(MT)用に
変換されたデータの読み込みを始めてみると
CPU負荷99%でそのまま延々と
7時間強もかかりました。
途中あまりにも時間がかかるので
プロセスが止まってしまうかな?
と思いましたがそこはリナックス系のOS
だけあって止まりません。
もちろんムーバブルタイプ(MT)の
プログラムが優れている証拠でもあります。
ムーバブルタイプ(MT)のデータの読み込みに
7時間もかかりましたが逆に考えると
3000エントリーを7時間で終了したと思えば
手動でムーバブルタイプ(MT)の
エントリーをコピペでムーバブルタイプ(MT)に
3000エントリーもすることを思えば
比べ物にならないくらい早いとも考えられますね。
そして問題の全ての再構築ですが
約3時間でCPU負荷99%でしたが終了しました。
3000ものHTMLファイルを3時間で
出力するとはかなり予想より早かったです。
今回のムーバブルタイプ(MT)用に変換された
データ3000レコードを読みこまし、
再構築すると言う実験の結果から
専用サーバーでなければこのような離れ業は
共有サーバーでは実現不可能に近いってことで
現実的ではありませんね
以上、ムーバブルタイプ(MT)の
限界を探ってみる実験でした。
これからこのような処理をムーバブルタイプ(MT)で
行おうと思っている方、
いらっしゃいましたら是非参考にしてください。