FileMakerのLoop処理をオプション毎に速度計測してみた【BFL vol.9】

Picture of 執筆者:中富 悠貴
執筆者:中富 悠貴

FileMakerエンジニア

FileMakerのLoop処理をオプション毎に速度計測してみた

先月、7月9日にClaris FileMaker 2025がリリースされ早一月が経ちました。

Claris が AI 機能がさらに強化された最新リリース Claris FileMaker 2025 の提供を開始

AI機能の強化や、新機能の追加、パフォーマンスの改善などメジャーバージョンのアップグレードはいつも心が躍りますね。

Briller FileMaker Laboratory(BFL)にも取り上げられそうな題材があれば、またそちらも検証していきたいと思いますのでよろしくお願いします。

目次

テーマ

今回のテーマは「Loop処理のオプション毎の速度計測」です!

FileMaker(ファイルメーカー)2023(20.3.1)からLoopスクリプトステップにフラッシュのオプションが追加されたのはまだ記憶に新しいと思います。

しかし、このフラッシュを設定することでパフォーマンスにどのような影響を及ぼすのか、1年経った今でも説明を求められると詰まってしまいます。

よって今回、フラッシュのオプション毎に速度計測を行い、その違いを確認してみたいと思います。

Loopについて

Claris FileMaker Pro ヘルプ:Loop

開発者にとって繰り返し処理は慣れ親しんだものなので、Loopの概要は省かせていただきますが、上記のヘルプに記載されている通り、FileMaker(ファイルメーカー)のLoopスクリプトステップには以下のオプションが利用できます。

[常に]: データを変更するループ内のすべてのステップで、常にすべてのキャッシュされたリレーションシップをフラッシュしてすべての依存関係を更新します。これはデフォルトのオプションで関連データを正しく使用できます。

[最小]: データを変更するループ内のすべてのステップで、キャッシュされたリレーションシップをフラッシュして現在のテーブルオカレンスから 1 テーブル離れたリレーションシップの関連データとの依存関係を更新します。

[延期]: ループの開始時、現在キャッシュされているリレーションシップとデータを使用します。ループが終了するとキャッシュされたリレーションシップをフラッシュして依存関係を更新します。

これだけを見ても少々わかりづらいと思います。
下記のエンジニアリングブログにわかりやすい説明がされていますのでよろしければそちらもご覧ください。

Claris エンジニアリング ブログ:スクリプトのパフォーマンスを向上させるために [Loop] の [フラッシュ] オプションを変更するタイミング

環境とスペック

検証するにあたっての環境と実機のスペックを紹介します。

ソフトウェア: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

検証方法

ファイルの準備

まずは下図のようなファイルを用意します。
フィールドは入力用のテキストフィールドのみとなっております。

BFL vol.9 データベース
BFL vol.9 レイアウト

新しく12,500レコードを作成するスクリプトを用意し、レコードを作成します。

BFL vol.9 レコード作成

スクリプトの内容

Loopスクリプトステップを用いて、フィールドへの入力を行い、時間を計測するスクリプトです。

スクリプト毎にLoopのオプションを変えております。

実行すると12,500レコードのテキストフィールドに、タイムスタンプを入力し、入力にかかった時間をミリ秒単位でダイアログに表示します。

BFL vol.9 計測

速度測定

各計測毎に3回ほどスクリプトを実行し、平均した値(小数第四位を四捨五入)を結果として出します。

例:変数の計測で1回目が10.311秒、2回目が10.225秒、3回目が10.119秒で、平均10.218秒が結果となる。

検証結果

計測1回目(s)2回目(s)3回目(s)結果(平均)(s) 
常に10.41810.27110.13210.274
最小10.08610.25710.12910.157
延期10.07910.04510.06510.063

※レコードの全置換:0.286s

まとめ

検証の結果、計測毎の速度は以下のようになりました。

(早い)延期 > 最小 > 常に(遅い)

「Loopについて」にて挙げさせていただいたエンジニアリングブログでは下記のような記述がありました。

BFL vol.9 エンジニアブログ

この説明がリレーションシップに関係なくLoopの処理速度としてなのかずっと気になっていましたが、今回の検証で確認する限り、大きな差ではないですが、処理速度として早くなっていました。

リレーションが参照されない可能性があるため、常に以外のオプションの利用は敬遠していましたが、リレーションシップと関係ない箇所や参照が必要ないときはフラッシュを延期にした方がいいかもしれませんね。

ただし今回のように単純な入力の場合、レコードの全置換を利用したほうがさらに早く処理できますので、状況に応じて使い分けるとよりパフォーマンスのよい開発ができると思います。

以上が【BFL vol.9】FileMakerのLoop処理をオプション毎に速度計測してみたの検証となります。

ここまで読んでくださって誠にありがとうございました。また次回のBFLもお楽しみに!

また、株式会社ブリエでは、FileMakerを活用したシステム開発や運用支援を行っています。

一括処理やパフォーマンスの改善のご相談もお気軽にお問い合わせください。

まずは、資料請求

ダウンロードできる資料の内容
・資料はすぐにメールで届きます
・1分でわかる株式会社ブリエの会社概要
・FileMaker開発の概算料金

無料相談はこちら

お問い合わせ・ご相談できること
・自社の業務の一元管理の進め方 / 改善について相談したい
・どのような機能が作れるのか知りたい
・自社に合う形で導入したときの料金を知りたい

Picture of 執筆者:中富 悠貴
執筆者:中富 悠貴

株式会社ブリエFileMakerエンジニア。ローコード開発を筆頭にプロコードからフロントエンドまで、多種多様な開発経験を活かしたフットワークの軽さが自慢のオールラウンダー。より便利に、より使いやすいUI/UXデザインをモットーに、新しい分野にも積極的に挑戦することで、あらゆるニーズに柔軟に対応できるよう、日々勉強を続けております。

【全国対応】株式会社ブリエは、企業の経営課題であるDX化、業務効率化、ペーパーレス化、情報の一元管理など、ビジネスニーズの変化に合わせてFileMakerで業務システムを開発し、柔軟に拡張して解決します。あらゆる業種や規模の企業、非営利団体、学校に固有の課題を解決するカスタムAppをご提案します。

新着記事
アーカイブ
まずは、資料請求

ダウンロードできる資料の内容
・資料はすぐにメールで届きます
・1分でわかる株式会社ブリエの会社概要
・FileMaker開発の概算料金

無料相談はこちら

お問い合わせ・ご相談できること
・自社の業務の一元管理の進め方 / 改善について相談したい
・どのような機能が作れるのか知りたい
・自社に合う形で導入したときの料金を知りたい