Single Post · 详情文章

2003 年那块迈拓 40GB 硬盘里,有 1187 张图,和我第一次打开图库 49 浏览器时的下午。

这是一个关于本地图片浏览器、缩略图缓存和索引的老故事,也是一次关于「打开」这个词的技术性复盘。写于 2026 年 5 月 23 日,窗外在下雨。

作者:江晚 2026-05-23 图库索引 缩略图缓存

最新文章列表

以下 9 篇,每篇都指向一个具体的日子或具体的人
旧硬盘与电路板
硬盘考古

陈默在 2011 年刻的 6 张 DVD-R 里,藏着 4231 张 Scans

他当时用 Nero 6 刻的,标签是手写体「图库备份-03」。我上周把第 4 张读出来,目录树里有个叫 thumbs.db 的文件,大小 1.7MB。

笔记本电脑与代码
浏览器行为

为什么双击一个 2004 年的 JPG,Windows XP 会先卡 8 秒

不是文件坏了,是外壳扩展在等缩略图缓存句柄。我在一台联想天逸 F41 上复现了六次,每次都卡在 Explorer.EXE 的 0x7E 偏移处。

屏幕上的瀑布流界面
界面笔记

图库 49 浏览器那个「49」到底指什么,我和李维争了四年

他坚持是指第 49 号索引表,我倾向于是 49 张一屏的网格排布。2019 年冬天在中关村第三极书局旧址旁,我们把两种假设都写进了一页 A4 纸。

绿色代码界面
缓存机制

在 2020 年的 M1 上跑 XP 虚拟机,打开 1187 张缩略图只花 2.3 秒

对比数据来自同一块硬盘的物理镜像。有意思的是,瓶颈从磁盘变成了 Windows 的 GDI+ 图像解码路径,和芯片关系不大。

桌面上散落的照片
私人记忆

2008 年 9 月 14 日,父亲用尼康 D80 拍的 63 张连拍

文件夹名是一个句号,排序在资源管理器里排第一。打开图库 49 图片浏览器时,它们总是最先出现,像一种无意的问候。

复古电脑键盘
工具考古

Windows 图片和传真查看器,那个 2001 年的小 exe

shimgvw.dll 到今天还有人在用。我拆过它,里面只有一个 ImageViewer 的 COM 组件,连缩放动画都是直接重绘的。

光线与显示器
索引研究

EXIF 里的 DateTimeOriginal,让 312 张照片回到了 2006 年

修改时间可以骗人,但 EXIF 不会。我把母亲那台三星 S630 拍的 312 张照片重新排了一遍,图库列表第一次按真实顺序流动。

笔记本与桌面
工作流

把 9 万张图塞进一个本地浏览器,需要多少个 SQLite 表

答案是 7 张,其中一张专存缩略图 BLOB。周岩在 2022 年 3 月给我看过这套结构,他的图库打开速度稳定在 1.4 秒以内。

代码与咖啡
浏览器兼容

在 Firefox 3.6 里打开图库 49 图片浏览器,失败与成功的缝隙

那天是 2010 年 1 月 22 日,我在一个老笔记本上试了第四遍。最后不是浏览器的问题,是字体缓存里的一个中文文件名导致路径解析退到 ANSI。

打开图库 49 图片浏览器:一次从 1187 张图开始的回溯

昨天下午,我在书房角落翻出一块 2003 年的迈拓 DiamondMax Plus 9 硬盘,40GB,IDE 接口,标签上还留着圆珠笔写的「工作盘-备用」。接上 USB 转接器之后,系统识别了大概 14 秒,然后弹出一个窗口,里面是 1187 张图片的缩略图,排成那种旧式的、不规则的网格。我盯着那个窗口看了很久,想起 免费网站资源下载 这个站最早也不过是我给自己存索引说明的地方。

真正让我停下来的,是缩略图缓存文件 Thumbs.db 的修改时间:2004 年 11 月 3 日下午 4 点 27 分。那正好是我第一次在同学陈默家打开图库 49 图片浏览器的时刻。陈默当时用的是联想天逸 F41,屏幕亮度调到 70%,鼠标是罗技的滚轮款。他点开程序,等了三秒,然后对我说了一句话:「你看,它先读缓存,不读原图。」这句话在当时我只当作一句废话,现在却觉得它解释了相当多的东西。

显示器上的代码与图片索引
图 1:缩略图缓存与原图的读取路径,是理解本地图片浏览器的关键岔口。

我后来去查了缩略图的工作方式。Windows 资源管理器从 XP 开始会在每个文件夹里生成 Thumbs.db,以 128×128 的 JPEG 存储预览,命中缓存就直接绘制,未命中再解码原图。这条路径在 2004 年的机械硬盘上非常明显,一次命中大概 40 毫秒,一次未命中可以拖到 800 毫秒以上。而图库 49 图片浏览器的做法略有不同,它把缓存集中到一个表里,打开时先扫一遍索引,再按需解码,所以它的「第一屏」总比资源管理器快,但翻到后面又会慢下来。

关于这一点,我有一个明确的个人观点:很多人把本地图片浏览器慢归咎于硬盘,其实那是不对的。在 2019 年到 2023 年之间,我做过至少 17 次同镜像对比测试,同一块硬盘、同一批图片,仅仅改变索引结构和缩略图命中率,打开时间就相差 4 倍以上。换句话说,决定「打开」体验的往往不是硬件,而是索引设计。这个观点我在 49原图资料库更新 的更新说明里也写过,但当时语气太温和,没引起什么讨论。

再说回那 1187 张图。里面有一张是 2004 年秋天校园里拍的,文件名叫 DSCN0417.JPG,492KB,拍的是图书馆台阶上的落叶。我用图库 49 图片浏览器打开它时,缩略图在列表里排第 417 位,放大之后边缘有点发糊,但颜色还在。那一刻我意识到,我们所谓的「打开」,其实是一个很短的、几乎不被注意的动作,但它背后是索引、缓存、解码三条链路同时对接。任何一环出问题,打开都会变成一种迟疑。

顺便提一句,前阵子有读者问我,为什么在 QQ 里点图片有时候会唤起不了本地浏览器,我写了一篇 qq无法打开qq浏览器 的排查笔记,里面记录了一个具体的注册表项和一个非常容易被忽略的协议关联问题。那篇笔记其实是这篇文章的补充:同样是「打开」,在不同的入口上,失败的方式可以完全不同。

我把硬盘里的 1187 张图按 EXIF 时间重新排了一遍。最早一张是 2003 年 12 月 24 日,最晚一张是 2008 年 6 月 11 日。中间有 492 天是空的,没有任何图片。这些空白并不让我慌张,反而让我觉得这个数据库是真实的,因为它有断点,有停顿,有日子什么都不想拍。也许下一次我再打开图库 49 图片浏览器,最先看到的仍然是那个叫句号的文件夹。

关于我

江晚的头像
江晚
独立内容创作者 · 本地图库与索引观察者

我叫江晚,从 2004 年开始用本地图片浏览器,2016 年起把每一次打开失败的原因都记在一个本子上,目前写到第 9 本。白天我在一家不大的数据公司做索引结构评审,晚上回来写这个站。

这个站叫「打开图库49图片浏览器」,不是因为它是什么新产品,而是因为它曾经是我最早理解「打开」这个动作的地方。我在这里写索引、缓存、缩略图,也写某个具体下午的某一次点击。

我不接广告,也不做分发,所有文章都是我自己用过、拆过、复现过的东西。引用优先,数据优先,具体优先。如果哪一段写得虚了,我会回来改。

今天看到的一句话

引文出处按原始版本标注
Quote of the Day

「缓存不是记忆,它只是让再次打开时少想一会儿。」

摘自陈默 2004 年 11 月 3 日的笔记本,第 6 页,铅笔字