created: 20150330155120127
modified: 20241110110532672
original-modified: 20191014091943444
tags: [[Working with TiddlyWiki]]
title: Performance
ja-title: パフォーマンス
type: text/vnd.tiddlywiki

TiddlyWikiは、スマートフォンからデスクトップコンピューターまで、モダンなデバイスを最大限に活用できるように設計されたデフォルト設定で出荷されています。古い、性能の低いデバイスで作業する必要がある場合や、大量のコンテンツを処理する必要がある場合は、パフォーマンスを向上させるために実行できる手順があります。

!! 使用法

* ''"最近の更新"タブは使用しないでください'' Tiddler の変更に応じて生成し更新するには計算に時間がかかります。
* ''"Vanilla"テーマを使用します'' デフォルトの"Snow White"テーマには、影、透明度、ぼかしなどの視覚効果が含まれており、古いデバイスではレンダリングが遅くなる可能性があります
* ''大きなTiddlerは避けてください'' 大きなビットマップはTiddlyWikiのパフォーマンスを著しく低下させる可能性があります。たとえば、最近のスマートフォンで撮影した画像は5MB以上になることがよくあります。可能な限り、ExternalImagesを使用してください
* ''一度にたくさんのTiddlerを開かないでください'' 表示中のTiddlerすべては、ストアが変更されるたびに最新の状態に保つための処理が必要になります(たとえば、ドラフトのTiddlerに入力している間)。zoominストーリービューを使用すると、サイドバーの''表示中''タブに数十のTiddlerがリストされてしまうことがよくあります。<<.icon $:/core/images/close-all-button>> ''すべて閉じる''ボタンを使用して、表示中のすべてのTiddlerを定期的に閉じる習慣をつけましょう

!! WikiText

* ''組み込みのパフォーマンス計測を使用します'' [[パフォーマンス計測|Performance Instrumentation]]の結果を調査すると、パフォーマンスの問題を明らかにするのに役立ちます
* インデックス付きフィルター演算子を活用します。フィルター実行の開始時に次の構造を実行すると、他の方法よりも何倍も高速に実行されるように最適化されます: 
** `[all[tiddlers]tag[x]...`
** `[all[shadows]tag[x]...`
** `[all[tiddlers+shadows]tag[x]...`
** `[all[shadows+tiddlers]tag[x]...`
** `[all[tiddlers]field:y[x]...`
** `[all[shadows]field:y[x]...`
** `[all[tiddlers+shadows]field:y[x]...`
** `[all[shadows+tiddlers]field:y[x]...`
** フィールドのインデックスは現在、128文字未満のフィールド値をインデックスするようにデフォルト設定されていることに注意してください。長い値も検索できますが、インデックスは構築されません
** また、演算子名がフィールド名である場合にも“field”演算子が使用されることに注意してください。つまり、たとえば、`[all[shadows+tiddlers]caption[x]...`は最適化されます。
* RefreshMechanismの[[スロットル|RefreshThrottling]]機能を賢明に使用します
* ''個別のTiddlerをトランスクルードする方がマクロを多用するよりもパフォーマンスが高く''、状況によってはその差が大きくなる可能性があることに留意してください。各Tiddlerのパース結果はキャッシュされ、Tiddlerが変更されていない場合は次回再利用されます。マクロには同じテクニックを使用できず、マクロはグローバルではなくウィジェットツリーに対してローカルであるため、毎回再度パースする必要があります。
** <<.from-version "5.1.23">> パラメータや変数(つまり、`$parameter$`または`$(variable)$`)を介してテキスト置換を実行''しない''マクロのパースツリーがキャッシュされるようになりました。
* 可能であれば、変数の宣言や文字列の連結には、''WikifyWidgetではなく、フィルター付きのSetWidgetやVarsWidgetを使用して''ください。パースツリーやウィジェット ツリーをキャッシュする機会がないため、wikifyメカニズムのパフォーマンスは比較的低くなります。
