処理速度

Timing the calendar

Note that the calendar has some instrumentation built in to help you measure speed and see if you're making things faster (or slower).

Run the script "Timer ON" and this will cause two dialogs to come up when the calendar is refreshed. One after the data is loaded, and another after the calendar is redrawn.

Times displayed here aren't much use on their own, but are great when comparing two versions of a script: 1) click refresh, 2) notice the times, 3) change your script, 4) refresh again and notice the times.

To time your own scripts check out the Timer comments in the script "Insert Events File Into Calendar" to see how we place these calls within a script we want to time.

カレンダーの処理速度を上げるヒントを紹介します。

  • 使用していない「Source No X」レイアウトを削除するか、レイアウト名を変更します。つまり、もしソースを1つしか使っていないとすれば、「Source No 2」レイアウトを削除するか、またはレイアウト名の「No」を「WAS」と置き換えて「Source WAS 2」というレイアウト名に変更します。

  • 一度に表示するソースは、1つだけにします。どのようなものであっても、同時に多くのレコードを表示することはFileMaker Proに負荷をかけます。
  • イベントの概要を複数行の計算に割り当てると、動作が若干遅くなります。特に、計算結果が保存されない場合には、この傾向があります。概要には、計算ではなく、通常のテキストフィールド(改行なし)を使ってみてください。また、このフィールドの内容が短いほど、処理は速くなります。
  • 頻繁に複数のリソースのフィルタ(またはチェックボックスの書式になっているフィルタ)を選択する場合、選択するたびにカレンダーが再描画されることにお気づきでしょう。この動作は、レイアウトモードでフィルタのフィールドを編集してスクリプトトリガを「OnObjectModify」から「OnObjectSave」にすれば変えられます。このようにするとフィルタの項目を選択した後でenterキーを押す必要があるため、このフィルタのフィールドの下にそのことを表す注意書きを加えたほうがいいかもしれません。
  • 「Source No X」レイアウトに配置したフィールドの索引が作られているか確認しましょう。
  • 起動時間を短縮するには、「Upon Opening」スクリプトを編集し、Splash画面の表示を無効にします。もしソリューションを他のマシン/ユーザーに移し替えないのであれば、一部のルーチンを無効にできますので「Upon Opening」スクリプトの動きが少し早くなります。「Upon Opening」スクリプトで無効にするステップはこのコメント以降の行です:

    Check FileMaker Version
    Write test -- is file editable?
  • 「月」表示で終日のイベントだけを表示したいケースもあります(「月」表示では多くのイベントを表示できるようになっているため、それに伴って動作が遅くなるおそれがあります)。「月」表示で終日のイベントだけを表示するように制限するのは簡単です。
  • 「Write FileMaker Source to Variable」スクリプトの編集ウインドウを開き、「Nothing Found?」というコメントを見つけます。このコメントの直前に、以下の内容を追加します。

    If [ $$sc_Mode = "Month" ]
    レコード/検索条件確定[ ]
    検索モードに切り替え[ ]
    オブジェクトへ移動[ オブジェクト名: "SourceTimeStart" ]
    計算結果を挿入[ "*" ][ 選択]
    レコードを対象外に
    対象レコードの絞り込み [ ]
    End If
    # 
    #Nothing found?

    これで、終日のイベントだけが表示されるようになります。

  • If your server is not on the same physical network as your FileMaker client, there could be an undue amount of latency between them slowing things down. Ping your FileMaker Server to check this: the results really depend on what kinds of speed you can tolerate, but we you'll likely be happy with pings under 50-70ms. Anything above that and you may want to start asking some of the FileMaker Server hosting providers for test pings to their servers to see if they'd be faster than what you have.
  • 「日」と「週」を簡易表示にするとある程度早くなります。カレンダのサイドバーの設定タブでそれらを選択します。詳細はこちら:シンプル表示
  • If you're entering a lot of events at the same time, you may not want the calendar to refresh after each event is entered. To achieve this simply close the Event Detail window after you've edited the event: the event will still be committed to FileMaker, but since the calendar hasn't refreshed the event won't show up and you can quickly create the next one. Almost any subsequent action will refresh the calendar (switching days, views, etc) and you can always refresh it manually.
  • 最後に、このカレンダーは処理することが多いとより一生懸命に頑張ろうとします。適切なレコードのみ表示させる様にフィルタリングするかあらかじめフィルタをかけておくことで、処理速度はとても向上します。詳細はこちら: フィルタ