2009年4月2日 星期四

如何避免 TiddlyWiki 變慢

TiddlyWiki 簡介

簡單的說, TiddlyWiki 是『用單一個 HTML 檔 實現的 Wiki』, 不需要安裝任何程式, 只要有『瀏覽器』就可以 檢視, 編輯, 回存 Wiki。

TiddlyWiki …… 是一個網頁(一個內含CSS+JavaScript的html檔)……,檔案本身同時是程式,也是資訊儲存的地方。你可以寫入、修改、刪除、設定密碼、增加外掛以產生新功能 ……

所有這些事情都在這個檔案上完成。程式也是這個檔,你寫的內容也存回這個檔(尾部),因此你可以一個檔走天下,備份、移動、散佈,全部變得非常簡單。

值得注意的 TiddlyWiki 新發展 (老貓, 2007-02-12)

.

TiddlyWiki 參考資料

.

如何避免 TiddlyWiki 變慢

2007-07 開始用 TiddlyWiki 製作每週的會議記錄, 從一開始的 500KB (TiddlyWiki 本身的 320KB 再加上外掛), 累積到現在 710KB 大約一百多篇 文章 (tiddler), 漸漸覺得 TiddlyWiki 有變慢的跡象, 主要發生在兩種情境 :

  • 瀏覽器一開始載入 TiddlyWiki 的 HTML 檔案
  • 編輯或新增任何一篇 文章 (tiddler)

.

上網搜尋關鍵字 TiddlyWiki Slow 之後, 發現兩篇文章 :

這兩篇文章的重點大致相同, 由此可知確實有人遇到『TiddlyWiki 變慢』的問題, 而且也已經有公認的解決之道。

經過實驗, 我會建議採用下面兩種作法 :

  • 關閉『動畫顯示』
  • 不要顯示『最近更新』

.

2009-04-02_175048 關閉『動畫顯示』---- disabling animations

『動畫顯示』的開關, 在 TiddlyWiki 右側邊欄的『偏好設定』, 而這一項也是我從一開始使用 TiddlyWiki 就採用的作法。

只是, 所有『偏好設定』都是存放在『瀏覽器的 Cookie』---- 包括『動畫顯示』在內 ----, 所以 換了一台電腦 或是 同一台電腦的不同瀏覽器, 或是 Cookie 遺失, 就得要再重新設定一次。

目前還在尋找『儲存在檔案裡頭』的『永遠關閉動畫顯示』 的設定, 以便一勞永逸。

.

不要顯示『最近更新』

『最近更新』也在 TiddlyWiki 的右側邊欄, 它會顯示依修訂日期排序的文章列表。而叫它『最近更新』其實有點『名不符實』, 因為它顯示的其實是依修訂日期排序的『所有文章列表』, 所以當文章數量變多時, 這個『最近更新』就會變成一條巨龍, 而且是『一條動態更新的巨龍』。不僅瀏覽器一開始載入 HTML 檔案時, 需要花不少時間撈出資料來排序出這一條巨龍; 而且編輯或新增任何一篇文章 (tiddler) 時, 也同樣要花時間來『動態更新這一條巨龍』。

所以, 前面提到那兩篇文章的建議都是『不要顯示最近更新』。而在作法上又可以細分成下面幾種 :

  • 直接把『最近更新』和『全部』從右側邊欄拿掉
  • 改變右側邊欄的排序, 使得一般場合顯示『預設文章』或其他內容
  • 將右側邊欄的下半部『收合起來』, 需要時再打開 (詳情見 Tips for speeding … 的最末段)

.

比較 TiddlyWiki  載入內容的時間

2009-04-02_170619-1為了比較每一種作法的改善幅度, 我依照 How big can my file get … ? 的說明, 打開後台選項, 讓 TiddlyWiki 顯示載入內容所花的時間

  • 從右側邊欄的『偏好設定』開始,
  • 點選『偏好設定』最下面的『進階選項』
  • 勾選 選項表格 下方的『顯示未知選項』
  • 勾選 chkDisplayInstrumentation

** 請留意這個設定是存放在『瀏覽器的 Cookie』 , 所以改了設定之後, 不一定要存檔, 只要關閉目前的 TiddlyWiki, 下次就會在右上角看到載入內容所花的時間,

=> 由測試結果可以得知 :

  • 『最近更新』、『全部』、『分類』和『預設文章』都是 動態文章, 都需要一些額外的處理時間, 只是『分類』和『預設文章』內容較少, 所需的時間也比較少。
  • 這些動態文章只有顯示的時候才會佔用時間, 所以它們只要不是預設顯示即可, 不一定要從右側邊欄刪除
  • 如果以縮短載入時間為目的, 最好的方法是在右側邊欄的下半部顯示『靜態文章』或『收合起來』

(1) 顯示『最近更新』(原始)

(2) 顯示『分類』

  直接把『最近更新』和『全部』從右側邊欄拿掉
  • LoadShadows 4 ms
  • LoadFromDiv 402 ms
  • LoadPlugins 146 ms
  • Notify 929 ms
  • Restart 1223 ms
  • Macro init 0 ms
  • Total: 2720 ms
  • LoadShadows 6 ms
  • LoadFromDiv 407 ms
  • LoadPlugins 140 ms
  • Notify 600 ms
  • Restart 778 ms
  • Macro init 0 ms
  • Total: 1947 ms
  • .

    (3) 顯示『預設文章』

    (4) 顯示『靜態說明』

    保留『最近更新』和『全部』, 但是調換頁籤的順序, 讓載入時顯示『預設文章』 同左, 但是載入時顯示另外增加的『靜態說明』
  • LoadShadows 5 ms
  • LoadFromDiv 406 ms
  • LoadPlugins 144 ms
  • Notify 329 ms
  • Restart 508 ms
  • Macro init 0 ms
  • Total: 1408 ms
    • LoadShadows 5 ms
    • LoadFromDiv 411 ms
    • LoadPlugins 150 ms
    • Notify 280 ms
    • Restart 440 ms
    • Macro init 0 ms
    • Total: 1302 ms

    .

    (1) 原始的 SideBarTabs 如下

    SideBarTabs :
    <<tabs txtMainTab "最近更新" "依更新日期排序" TabTimeline "全部" "所有文章" TabAll "分類" "所有標籤" TabTags "更多" "其他" TabMore>>

    (2) 直接把『最近更新』和『全部』從右側邊欄拿掉 => 讓載入時顯示『分類』。
    ** 因為『分類』也是動態文章, 但內容較少, 所以稍省了一點時間。

    SideBarTabs :
    <<tabs txtMainTab "分類" "所有標籤" TabTags "更多" "其他" TabMore>>

    (3) 保留『最近更新』和『全部』, 但是調換頁籤的順序 => 讓載入時顯示『預設文章』。
    ** 『預設文章』(『shadowed tiddler tab』或『Shadow Tiddlers』) 同樣還是動態文章, 但內容更少, 所以又再省了一點時間。

    SideBarTabs :
    <<tabs txtMainTab "更多" "其他" TabMore "最近更新" "依更新日期排序" TabTimeline "全部" "所有文章" TabAll "分類" "所有標籤" TabTags>>

    (4) 同(3), 但是載入時顯示另外增加的『靜態說明』
    ** "管理" 和前面的 "更多" 是同一個分頁, 被移到最前面當作預設的分頁, 叫它 "更多" 有點怪, 於是改名。另外再到 TabMore 增加一個『靜態說明』頁。

    SideBarTabs :
    <<tabs txtMainTab "管理" "管理文章" TabMore "最近更新" "依更新日期排序" TabTimeline "全部" "所有文章" TabAll "分類" "所有標籤" TabTags>>

    TabMore :
    <<tabs txtMoreTab "說明" "參考資料" TW_HELP "未完成" "內容空白的文章" TabMoreMissing "未引用" "未被引用的文章" TabMoreOrphans "預設文章" "已預設內容的隱藏文章" TabMoreShadowed>>

    .

    加速 TiddlyWiki 運作的其他選項

    底下還有其他 加速 TiddlyWiki 運作 的選項, 但『不見得適用於每一個人』就是了 ……

    調整使用的套件 (plugin)

    開啟『預設文章』- PluginManager, 可以看到每個 plugin 的大小和載入時間, 再依此調整使用的套件。在我自己這邊, plugin 載入時間 都在 0 ~ 5ms, 所以下面提到的『使用外部 js 檔的方式安裝套件』, 看來就沒有這麼迫切的需求。

    文件體積822K,變得特慢

    2.移除非必要套件、盡可能使用外部 js 檔的方式安裝套件
    於 MarkupPostBody 宣告欲載入的套件:
    <script type="text/javascript" src="/pathto/YourPlugins.js"></script>

    .

    調整存檔方式

    偏好設定的『儲存備份』和『自動存檔』這兩項, 也會影響 TiddlyWiki 運作的效能, 但和『文件保全』比起來如何取捨, 就沒有一定的答案了。

    .

    1 意見:

    發表您的回應
    1. 匿名 提到...

      獲益良多,謝謝你喔

    張貼留言