FileMakerのレイアウト表示速度をオブジェクトごとに比較検証_その2
つづきです
Hiroyuki Noguchiです、前回からの続きになります。
前回の最後に予告した通り、テキスト関連以外の表示についても検証を進めていきます。
具体的には、一般に「重い」とされる、以下4つについて。
- WEBビューア
- ポータル
- タブ
- スライド
「通常フィールド」が置いてある状態で、加えて上記のオブジェクトを追加設置します。
検証方法についても、前回に同じくです。
WEBビューア
ではまず、WEBビューアについて。
これ、いかにも重そうですよね。
セットする値はGoogleMapにしておきます。
スクリプト実行。
24.5秒。あれ、思ったより重くないですね。
通常フィールドだけ置いてある状態から比較して、3秒くらいしか加算されていません。
というのも実は、FileMakerがレイアウト上にWEBビューアをレンダリングするのは、WEBビューアというオブジェクトを表示するまでしか責任をとらないからであって、その先の処理は、WindowsならInternetExplorer、MacならSafariにお任せ、となるからなのですね。
ですから、実際に画面上にGoogleMapが表示されてくれるようになるには、だいぶ待ち時間がかかります。
とはいえ、まあ、オブジェクトとしては、実はそんなに重くないのですね、WEBビューアは。
ポータル
続いて、ポータルです。
これも、いかにも重そうです。
ポータル設置するために、どうでもいい関連テーブルオカレンスを作ります。
何ともやる気の無い自己リレーション。
で、ポータルを設置します、ポータル内にフィールドの設置はおこないません。
そしてスクリプト実行。
26.8秒。おお、WEBビューアより重い。
でも、思ったほどには重くない?
しかし、ポータル設置する場合には、必ずこれに加えてフィールドを置いていくことになるので、それらの重さが加わっていき、トータルではなかなかのものになっていきます。
ポータル設置は要注意です。
タブ
さて、本命です、タブコントロール。
まずは、タブの数を1つにしておきます。
スクリプト実行。
27.0秒。いきなりなかなか重い。
そして、タブっていうのは、1つで使うことは有り得ないので、複数に増やしてみましょう。
試しに5つ。
38.4秒。跳ね上がった!!
まさかここまで跳ね上がるとは。
では、10に増やしてみるとなると……?(レイアウトのキャプチャ画像は省略)
51.0秒。うん、だいたい、1つのタブが増えると、2秒以上増える感じですかね。
タブは重い重いと思っていましたが、まさかここまでとは。
スライド
では最後に、タブと同じような機能で、モバイル向けに便利なスライドコントロールに進みます。
こちらもまずは、スライド1つから。
スクリプト実行。
23.3秒。お!? 速い?
続けて、スライドの数を5つに増やしてみます(レイアウトのキャプチャは省略)
24.4秒。速い。負荷がほとんど変わっていない。
では、スライドの数を10にしてみると?(普通はそんなことしませんが)
25.7秒。おお……
つまり、数を増やそうとすればするほど、タブよりスライドの方が負荷が減ってイイ感じになりますね。
このあたりはさすが、スライドがそもそものところでモバイル向け、FMGo向けに作られたオブジェクトというだけありますね。
まとめ
ということで、まとめます。
(タブ/スライドの)数 | 速度(秒) | |
---|---|---|
通常フィールド(ラベルなし) | 21.8 | |
WEBビューア | 24.5 | |
ポータル | 26.8 | |
タブ | 1 | 27.0 |
5 | 38.4 | |
10 | 51.0 | |
スライド | 1 | 23.3 |
5 | 24.4 | |
10 | 25.7 |
一番軽いのは、スライドでした。
数を増やしていっても、そんなにレンダリング速度に影響は受けません。
もちろん、これに各種フィールドオブジェクトを載っけていくので、重くなるはなるのですが、それ自体が重いタブの比ではありませんね。
タブは、5つくらいのものなら気軽に置いてしまいがちですが、そのぶんがっつり重くなります。
あまり多くのタブを置かないといけないようであれば、いっそ、別レイアウトに切り分けるというのも検討してよいかなと思います。
以上、設置するオブジェクトごとの速度検証でした。
パフォーマンスを気にするあまり、不便なものを作り上げてしまうのは御法度です。
が、「FileMaker開くの重いなーーー」という不満が出ているようであれば、このあたりのチューニングはかっちりやってみると良いと思います。
次のネタ構想
レイアウトテーマによって、表示速度がどう変わるのかなーというのを検証してみたいと思います。
テーマに従ったスタイルを適用していくのではなく、オブジェクトごとにスタイルをカスタマイズしてしまうと、どれくらい遅くなるのか!?など。