FileMakerエンジニア
初めまして!このたびブリエでブログを書かせていただくことになりました中富と申します。どうぞよろしくお願いします!
私の担当するブログはBriller FileMaker Laboratory(BFL)と称して、FileMakerに関わる様々な検証実験を行っていくシリーズとなります。
私自身、FileMakerとの付き合いは十数年にのぼりますが、未だに使ったことのない機能や関数も数多くあり、処理を一つとっても、厳密な挙動の違いなどをなんとなく肌感覚でやっていることが多々あります。
そういったものを可視化、数値化することで新しい可能性を発見したり共有がスムーズになったりするのではないかと思い、このようにブログとして記事にさせていただきました。
私も初めて行う試みですので、至らないところもあると思いますが、温かい目で見守っていただければ幸いです。
目次
テーマ
それでは早速今回のテーマに移りましょう。
今回のテーマはずばり「レコードのエクスポートの速度測定」です!
初回なので、よく利用する機能の比較ということで、レコードのエクスポートを取り上げさせていただきました。
レコードのエクスポートについて
レコードのエクスポートはその名の通り、FileMakerのレコードデータを他のファイルに出力する標準機能です。
FileMakerでは様々な拡張子のエクスポートが可能となっておりますので、用途に応じて選ぶことになると思われます。
詳しくはこちらのFileMaker Pro からのデータのエクスポートを参照ください。
速度測定について
この検証ではレコードのエクスポートの拡張子毎による、ファイルの出力速度を測ります。
拡張子によって、ファイルの構造が変わるため、当然ながらその出力速度にも差が出ます。
「ファイルの拡張子は選ばないので、とにかく早く出力したい」等の状況があれば、どの拡張子で行えば早いのか知っておくと今後の開発にも役立つと思います。
今回対象となる拡張子(文字コード)は以下のものになります。
- TAB:タブ区切り値形式(UTF-8)
- CSV:コンマ区切り値形式(UTF-8)
- DBF:dBASE III および IV DBF 形式(Shift-JIS)
- MER:Merge 形式(UTF-8)
- HTM:HTML テーブル形式(UTF-8)
- FMP12:FileMaker Pro 形式(UTF-16)
- XML:XML 形式(UTF-8)
- XLSX:Microsoft Excel 形式(UTF-16)
環境とスペック
検証するにあたっての環境と実機のスペックを紹介します。
ソフトウェア:FileMaker Pro 21.1.1.41
OS:Windows 11 Pro(24H2)
CPU:12th Gen Intel(R) Core(TM) i5-12450H 2.00 GHz
メモリ:32.0 GB
検証方法
1. ファイルの準備
まずは下図のようなファイルを用意します。
フィールドを6種類(数字、テキスト、計算、日付、時刻、タイムスタンプ)のタイプ毎に用意し、適当な入力で100,000レコードほど作成しました。
2. スクリプトの内容
スクリプトは下図のように設定しました。
スクリプトを実行するとデスクトップにファイルが自動で作成され、作成までにかかった時間がミリ秒単位でダイアログに表示されます。
3. 速度測定
各拡張子毎に3回ほどスクリプトを実行し、平均した値(小数第四位を四捨五入)を結果として出します。
例:xlsx出力で1回目が3.243秒、2回目が3.247秒、3回目が3.300秒で、平均3.263秒が結果となる。
検証結果
ファイル形式 | 1回目(s) | 2回目(s) | 3回目(s) | 結果(平均)(s) |
tab | 0.747 | 0.714 | 0.805 | 0.755 |
csv | 0.771 | 0.775 | 0.757 | 0.768 |
dbf | 1.732 | 1.760 | 1.734 | 1.742 |
mer | 0.771 | 0.727 | 0.778 | 0.759 |
htm | 1.277 | 1.304 | 1.320 | 1.300 |
fmp12 | 4.812 | 4.329 | 4.270 | 4.470 |
xml | 0.999 | 1.090 | 1.008 | 1.032 |
xlsx | 3.296 | 3.306 | 3.272 | 3.291 |
まとめ
検証の結果、拡張子毎の速度は以下のようになりました。
(早い)tab ≒ mer ≒ csv > xml > htm > dbf > xlsx > fmp12(遅い)
今までなんとなくxlsxよりtabやcsvの方が早いぐらいの認識しかなかったのですが、merもtabやcsvに匹敵するほど早かったんですね。
加えて一番遅いのはxlsxではなくfmp12だということもわかりました。一番早いtabが0.755秒なので、実に3.715秒差。大変わかりやすい結果になってよかったです。
今回出力したのは、ローカル環境で単純に入力されたデータだけでしたので、10万レコードでもかなり早く出力することができましたが、これがサーバーから計算式で取得したフィールドを出力すると、より差が大きくなると思います。
時は金なりというように、同じ結果になるなら早いほうが絶対いいので、今回の検証結果もいつか役立つ日が来てくれると嬉しいです。
以上が【BFL vol.1】 FileMakerのレコードのエクスポートを速度測定してみたの検証となります。
ここまで読んでくださって誠にありがとうございました。また次回のBFLもお楽しみに!
また、株式会社ブリエでは、FileMakerを活用したシステム開発や運用支援を行っています。
業務を早くしたい、円滑にしたいなどのご相談もお気軽にお問い合わせください。
株式会社ブリエFileMakerエンジニア。ローコード開発を筆頭にプロコードからフロントエンドまで、多種多様な開発経験を活かしたフットワークの軽さが自慢のオールラウンダー。より便利に、より使いやすいUI/UXデザインをモットーに、新しい分野にも積極的に挑戦することで、あらゆるニーズに柔軟に対応できるよう、日々勉強を続けております。