如何避免TiddlyWiki变慢

简介:
2007-07 开始用 TiddlyWiki 制作每周的会议记录, 从一开始的 500KB (TiddlyWiki 本身的 320KB 再加上外挂), 累积到现在 710KB 大约一百多篇 文章 (tiddler), 渐渐觉得 TiddlyWiki 有变慢的迹象, 主要发生在两种情境 :
浏览器一开始载入 TiddlyWiki 的 HTML 档案 
编辑或新增任何一篇 文章 (tiddler) 
.
上网搜寻关键字 TiddlyWiki Slow 之后, 发现两篇文章 :
How big can my file get before it gets too slow/doesn't work? ( tiddlywiki.org/wiki) Tips for speeding up performance on large TiddlyWikis (2007-07-05)
 
这两篇文章的重点大致相同, 由此可知确实有人遇到“TiddlyWiki 变慢”的问题, 而且也已经有公认的解决方法。
经过实验, 我建议采用下面两种方法 :
关闭“动画显示” 
不要显示“最近更新”
 
关闭“动画显示”---- disabling animations 
“动画显示”的开关, 在 TiddlyWiki 右侧边栏的“偏好设定”, 而这一项也是我从一开始使用 TiddlyWiki 就采用的方法。
只是, 所有“偏好设定”都是存放在“浏览器的 Cookie”---- 包括“动画显示”在内 ----, 所以 换了一台电脑 或是 同一台电脑的不同浏览器, 或是 Cookie 遗失, 就得要再重新设定一次。
目前还在寻找“储存在档案里头”的“永远关闭动画显示” 的设定, 以便一劳永逸。

不要显示“最近更新” 
“最近更新”也在 TiddlyWiki 的右侧边栏, 它会显示依修订日期排序的文章列表。而叫它“最近更新”其实有点“名不符实”, 因为它显示的其实是依修订日期排序的“所有文章列表", 所以当文章数量变多时, 这个"最近更新"就会变成一条巨龙, 而且是"一条动态更新的巨龙"。不仅浏览器一开始载入 HTML 档案时, 需要花不少时间捞出资料来排序出这一条巨龙; 而且编辑或新增任何一篇文章 (tiddler) 时, 也同样要花时间来"动态更新这一条巨龙"。
所以, 前面提到那两篇文章的建议都是"不要显示最近更新"。而在作法上又可以细分成下面几种 :
直接把"最近更新"和"全部"从右侧边栏拿掉 
改变右侧边栏的排序, 使得一般场合显示"预设文章"或其他内容 
将右侧边栏的下半部"收合起来", 需要时再打开 (详情见 Tips for speeding … 的最末段)
 
比较 TiddlyWiki  载入内容的时间 
为了比较每一种作法的改善幅度, 我依照  How big can my file get … ? 的说明, 打开后台选项, 让 TiddlyWiki 显示载入内容所花的时间
从右侧边栏的"偏好设定"开始, 
点选"偏好设定"最下面的"进阶选项" 
勾选 选项表格 下方的"显示未知选项" 
勾选 chkDisplayInstrumentation 
** 请留意这个设定是存放在"浏览器的 Cookie" , 所以改了设定之后, 不一定要存档, 只要关闭目前的 TiddlyWiki, 下次就会在右上角看到载入内容所花的时间,
=> 由测试结果可以得知 :
"最近更新"、"全部"、"分类"和"预设文章"都是 动态文章, 都需要一些额外的处理时间, 只是"分类"和"预设文章"内容较少, 所需的时间也比较少。 
这些动态文章只有显示的时候才会占用时间, 所以它们只要不是预设显示即可, 不一定要从右侧边栏删除 
如果以缩短载入时间为目的, 最好的方法是在右侧边栏的下半部显示"静态文章"或"收合起来".
单位都是:ms
Tiddler (1) 显示“最近更新” (2)显示“分类” (3)显示“预设文章” (4) 显示“静态说明”
  原始 直接把“最近更新”和“全部”从右侧边栏拿掉。 保留“最近更新”和“全部”,但是调换页签的顺序, 让载入时显示“预设文章” 同左, 但是载入时显示另外增加的“静态说明”
LoadShadows 4 6 5 5
LoadFromDiv 402 407 406 411
LoadPlugins 146 140 144 150
Notify 929 600 329 280
Restart 1223 778 508 440
Macro init 0 0 0 0
Total 2720 1947 1408 1302
(1) 原始的 SideBarTabs 如下
SideBarTabs : 
<&lt;tabs txtMainTab "最近更新" "依更新日期排序" TabTimeline "全部" "所有文章" TabAll "分类" "所有标籤" TabTags "更多" "其他" TabMore>&gt;
(2) 直接把"最近更新"和"全部"从右侧边栏拿掉 =&gt; 让载入时显示"分类"。 
** 因为"分类"也是动态文章, 但内容较少, 所以稍省了一点时间。
SideBarTabs : 
<<tabs txtMainTab "分类" "所有标签" TabTags "更多" "其他" TabMore>>
(3) 保留“最近更新”和“全部”, 但是调换页籤的顺序 =&gt; 让载入时显示“预设文章”。 
** “预设文章”("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 档的方式安装套件”, 看来就没有这么迫切的需求。
2.移除非必要套件、尽可能使用外部 js 档的方式安装套件 
于 MarkupPostBody 宣告欲载入的套件: 
<script type="text/javascript" src="/pathto/YourPlugins.js"></script> 
调整存档方式 
偏好设定的“储存备份”和“自动存档”这两项, 也会影响 TiddlyWiki 运作的效能, 但和“文件保全”比起来如何取舍, 就没有一定的答案了。














本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/sinojelly/201364 ,如需转载请自行联系原作者
相关文章
|
自然语言处理 搜索推荐 开发者
GitHub Copilot Enterprise三大创新功能
【2月更文挑战第9天】GitHub Copilot Enterprise三大创新功能
335 4
GitHub Copilot Enterprise三大创新功能
|
4月前
|
人工智能 边缘计算 API
2025大语言模型部署实战指南:从个人开发到企业落地全栈解决方案
本文深度解析了针对2025年大语言模型的四大主流部署框架,适用于不同场景的技术选型。从个人开发者使用的Ollama,支持快速本地部署与量化模型管理;到资源受限设备上的llama.cpp,通过极致优化使老旧硬件焕发新生;再到企业级服务的vLLM,提供高并发生产环境解决方案;以及跨平台开发桥接器LM Studio,作为全栈开发者的瑞士军刀。每种方案根据其特点覆盖了从本地调试、边缘计算到大规模生产的应用场景,旨在帮助技术团队精准匹配最适合的大模型部署方案,以实现效率和成本的最佳平衡。随着大模型应用的增长,选择正确的部署策略对于AI工程化落地至关重要。
|
11月前
|
存储 监控 安全
日志审计是什么?为什么企业需要日志审计?
日志审计是对信息系统中产生的日志进行收集、分析和存储的过程,记录系统活动如用户登录、操作行为等。企业通过日志审计可满足合规要求(如金融、医疗行业的法规),及时发现安全威胁(如异常登录、数据泄露),并为事故调查提供依据。工具如EventLog Analyzer能帮助企业生成合规报表,确保符合PCI DSS、HIPAA等标准,并支持实时监控与存档分析,保障网络安全与数据隐私。
764 2
|
10月前
|
存储 开发工具 git
TortoiseSVN迁移到本地git
通过上述步骤,您可以将项目从TortoiseSVN迁移到本地Git仓库。这一过程包括从SVN仓库检出代码、使用 `git-svn`转换为Git仓库、优化Git仓库以及将本地仓库推送到远程Git仓库。以下是思维导图示例,帮助您更好地理解迁移过程。
586 27
|
12月前
|
机器学习/深度学习 自然语言处理 安全
Llama 3.3开源!70B媲美405B性能,支持128K上下文
近期,Meta开源了Llama 3.3 多语言大型语言模型(LLM),Llama 3.3 是一个预训练并经过指令调优的生成模型,参数量为70B(文本输入/文本输出)。
2276 5
Llama 3.3开源!70B媲美405B性能,支持128K上下文
|
前端开发 Java Spring
探索Spring MVC:@Controller注解的全面解析
在Spring MVC框架中,`@Controller`注解是构建Web应用程序的基石之一。它不仅简化了控制器的定义,还提供了一种优雅的方式来处理HTTP请求。本文将全面解析`@Controller`注解,包括其定义、用法、以及在Spring MVC中的作用。
351 2
|
机器学习/深度学习 人工智能 IDE
Cursor免费 GPT-4 IDE 工具的保姆级使用教程
本文介绍了Cursor这一基于人工智能技术的代码生成工具,包括其特点(利用自然语言处理和深度学习算法,可生成高质量代码,支持多种编程语言,能在多种操作系统上运行)及使用教程。教程内容涵盖下载(通过官网获取对应系统版本并安装)、初始化配置(如配置快捷键、AI指定语言,导入VS Code扩展,设置数据偏好,登录/注册)、安装插件(设置Cursor中文、配置gitee)、配置模型和Key(选择模型、配置密钥、自定义模型并进行测试)以及如何使用(打开提示词面板)等步骤。
12164 6
 Cursor免费 GPT-4 IDE 工具的保姆级使用教程
单片机按键的使用
单片机按键的使用
350 0
|
移动开发 监控 API
WebSocket API 详解与应用指南
WebSocket API 是HTML5的一种技术,它允许服务器与客户端建立持久的全双工连接,改变传统HTTP请求-响应模式,实现双向通信。API包括WebSocket构造函数、连接状态属性(如readyState)、方法(如send和close)及事件(如onopen和onmessage)。它简化了实时Web应用程序的开发,适用于在线聊天、实时数据监控等场景。
724 5
|
人工智能
三款Github Copilot的免费替代
三款Github Copilot的免费替代
1216 0