Trilium 是一个本地知识库:笔记挂在一棵树上,正文和附件全写进一个 3235840 字节的 SQLite 文件。它不带账号体系,不依赖云服务,解压一个 495 MiB 的目录就能跑。

在 Windows 10 22H2 上跑了完整流程:解压 / 初始化 / 建库 / 开笔记 / 搜索,每个环节都记了耗时和体积。

双击到笔记树可用 4.11 秒

0.106.1 的 Windows 便携包是 226727471 字节,解压后目录 518133711 字节。主程序 trilium.exe 一个就占 246318848 字节,剩下的是 Electron 运行时和 6 个 dll。

项目数值说明
压缩包226727471 字节windows-x64.zip
解压目录518133711 字节495 MiB
主程序 exe246318848 字节占目录 47.5%
启动到笔记树4.11 秒库已有 577 条笔记
常驻内存537.4 MB所有子进程合计
dll 数量6Electron 运行时
trilium.exe            246318848 字节
其他资源 + 6 个 dll    271814863 字节
解压目录合计            518133711 字节

4.11 秒是冷启动,包含读取整个库、渲染左侧树和右侧日历。之后再开窗口会快很多,因为进程还在。

577 条笔记装进 3235840 字节

演示库自带 577 条笔记,整个 document.db 只有 3235840 字节。拆开看,正文和元数据分成几张表,体积的大头在附件和图片。

表行数
notes577
branches592
attributes1411
blobs140
attachments19
revisions0

branches 592 比 notes 577 多一些,原因是同一条笔记可以挂在树上的多个位置,每次挂载算一条分支。这个设计让它既能当文件夹用,又能做标签视图。

PRAGMA page_count  -> 794
PRAGMA page_size   -> 4096
794 x 4096         = 3253504 字节
document.db 实际   = 3235840 字节

revisions 是 0,说明演示库没开历史版本。真要用起来,每改一次正文就多一份快照,577 条笔记全开历史的话,3235840 字节的库会翻几倍。

PLACE1

打开一条笔记 0.63 秒,搜一个词 208.7 毫秒

从点左侧树到右侧正文渲染完,用了 0.63 秒。搜索走的是顶部快速搜索框,输入一个短词,208.7 毫秒出结果,命中 2 条。

操作耗时条件
启动到笔记树4.11 秒577 条笔记
打开一条笔记0.63 秒含表格、代码块、公式
全文搜索208.7 毫秒命中 2 条
内部 API 响应4 毫秒267 字节的 options
快捷键定义4 毫秒20187 字节
内部服务端口37840桌面版默认
GET /api/options               -> 200, 267 bytes,   4 ms
GET /api/keyboard-actions      -> 200, 20187 bytes, 4 ms
GET /api/keyboard-actions 是快捷键定义,两万字节一次读完。

桌面版内部起了一个 HTTP 服务,默认端口 37840。所有界面操作都走这个接口,界面响应取决于它的往返时间,4 毫秒基本无感。

笔记不止一种,一共 14 类

演示库里数出来的笔记类型有 14 种。除了普通文档和纯文本,还有代码、书、启动器、看板、思维导图。

类型数量
doc(富文本)303
text(纯文本)112
launcher33
book31
code30
contentWidget20
mermaid13
image / render / webView12 / 8 / 7
file / noteMap / mindMap / canvas5 / 1 / 1 / 1
类型合计14

富文本 303 条,纯文本 112 条,两类占了大多数。剩下的是各种视图:book 把多条笔记串成一本,launcher 做跳转入口,mermaid 存流程图。

PLACE2

第一次用会卡在语言选择上

初始化有四步:选界面语言、点继续、选「新建知识库」、选「包含演示内容」或「空白」。每一步都要等界面重建,整个流程要走 4 屏。

1. 语言列表(默认 English)-> 选 简体中文
2. 按钮文字从 Continue 变成 继续
3. 开始使用 Trilium -> 新建知识库
4. 你想要如何开始 -> 包含演示内容 / 空白

第二步有个容易踩的地方:选了简体中文,那个按钮的文案也跟着变成「继续」。任何靠英文单词定位的自动化脚本,在选完语言之后就会找不到按钮。

还有一个更隐蔽的:点完「包含演示内容」,应用会重建窗口,原来的窗口句柄和页面对象全部失效。用自动化工具抓界面的话,必须重新连一次,旧的调试端口引用一律报 0 个页面。

什么时候值得用

手上资料超过几百条、需要在同一棵树里放文档和代码片段、又不想把内容交给云服务,Trilium 是合适的选择。演示库 577 条笔记只占 3235840 字节,比多数云端笔记应用的本地缓存还小。

反过来,只是偶尔写几篇 Markdown 的,没必要上这个。537.4 MB 的内存占用对一个记事本来说偏重,装完 495 MiB 的目录也要占着盘。

它不带同步服务,多设备只能靠外部手段:把 3235840 字节的库目录放进网盘,或者按官方文档自建 Trilium 服务端,端口要自己开。这一点在选型时要想清楚,不然用两周才发现手机上打不开。