实在想不通为什么 Windows 记事本打开大文件比 VS Code 慢那么多

2020-07-23 13:24:32 +08:00
 szzhiyang

同一份 100MB 的纯文本文件,VS Code 只用一两秒就打开完成了,记事本卡了一分多钟都还不见一个字。


VS Code 是用以慢著称的 Electron 框架写的,记事本是用以快著称的 C++ 写的,可为什么后者打开文件反而更慢并且还慢那么多呢?


7343 次点击
所在节点    程序员
40 条回复
SpiderZzx
2020-07-23 16:41:15 +08:00
还记得小时候网速慢看那种颜色网站图片和网页都是一点一点慢慢加载出来的
zdnyp
2020-07-23 17:37:01 +08:00
好重的的戾气...
gitopen
2020-07-23 18:20:22 +08:00
打开 GB 级别的 txt,mac 上,速度 UltraEdit > sublime > vscode
ungrown
2020-07-23 18:24:28 +08:00
@zdnyp #22 没闻到,大家对“戾气”“杠精”这类词真的喜欢随性滥用
ysc3839
2020-07-23 18:30:00 +08:00
印象中记事本是把文件映射到内存,再把指针传给 Edit 控件。而 Edit 控件会读取全部数据,不会分段读取。
具体情况如何还得逆向以及看看 ReactOS 的实现。
imn1
2020-07-23 18:46:13 +08:00
vscode 是异步读取的吧?
linvon
2020-07-23 19:13:13 +08:00
@jrtzxh020 这是个梗
qW7bo2FbzbC0
2020-07-23 19:30:18 +08:00
@aoeui 什么意思?
liuzhiyong
2020-07-23 19:49:11 +08:00
你用 UltraEdit 试试:记事本和 VSCode 不是一个级别的工具。
cheng6563
2020-07-23 19:53:40 +08:00
windows 原生的古董控件是这样的。
GrayXu
2020-07-23 19:58:30 +08:00
自己想想如果自己写一个读大文件的,会怎么写,就知道他们的区别了
stephenyin
2020-07-23 20:08:20 +08:00
内存映射了解一下
laqow
2020-07-23 20:40:26 +08:00
C++什么时候快过?
xiaoming1992
2020-07-24 00:14:01 +08:00
@jrtzxh020 一看就不怎么逛 b 乎。。。
daozhihun
2020-07-24 10:20:21 +08:00
sublime 打开大文件貌似更快
记得以前有个微软的人说他们也很惊讶 sublime 为什么能那么快
lonewolfakela
2020-07-24 11:04:35 +08:00
记事本可以正确显示各种奇葩文字,横着的竖着的叠着的左右横跳的……相比之下 vscode 弄了快四年都弄不好 RTL (由右至左的文字)支持( https://github.com/microsoft/vscode/issues/11770 )。
然而 vscode 作为代码编辑器,主要还是把 ASCII 码文字正确显示就能完成其主要功能了。而记事本作为一个系统的默认的基本文本编辑器,用户会用它来查看各种各样的语言和内容的文档,所以支持各种语言都是有必要的。
所以记事本速度慢实在是很正常的事情,毕竟要支持这些奇怪的东西都是有代价的。
mostkia
2020-07-24 11:27:35 +08:00
记事本是将整个文件读取到内存的,并且修改也是刷新整个内存数据的,你打开一个 10M 的文档,可以试着在开头插入一个字符串,看看计算机是不是会卡死一段时间
codehz
2020-07-24 13:01:19 +08:00
@lonewolfakela #36 然后记事本还是不支持彩色 emoji...
这玩意就是 edittext 控件的试验场,哪里来的这么多操作。
shuax
2020-07-24 14:19:15 +08:00
记事本没优化
lxilu
2020-07-24 15:42:17 +08:00
@codehz #38 反过来说,Chromium 不支持文本样式。老 Edge 和 Firefox 支持 emoji-specific variation selectors.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/692484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX