Typora 里面图片放多了就奇卡无比 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
movq
V2EX    程序员

Typora 里面图片放多了就奇卡无比

  •  
  •   movq 2021-10-02 15:09:22 +08:00 6302 次点击
    这是一个创建于 1541 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在一台 32G RAM 的电脑上面还勉强能用(速度跟 PPT 似的)

    在另一台 8G RAM 的电脑里面就几乎动弹不得了

    3vyTB1OC7xRrkJK

    看了下,我这个 markdown 文件里面有 75M 的图片,这些图片都是本地路径的

    为什么会这么卡?

    23 条回复    2021-10-09 13:14:25 +08:00
    ipwx
        1
    ipwx  
       2021-10-02 15:28:34 +08:00
    ummm 可能是因为图片控件用的是 RGB 图片,这种是不能压缩的。

    你看 JPG 虽然小,但你用 width * height * 3 看看需要多少字节才能存下来?
    压缩图片没法直接显示在屏幕上,需要解压成像素点的。
    ipwx
        2
    ipwx  
       2021-10-02 15:29:34 +08:00   1
    如果你开发过桌面应用你就也能明白了。系统是不可能让它“显式一张 JPG 图片”。你必须先把图片载入进来,像素点解码出来,然后给系统它才能显示。
    ipwx
        3
    ipwx  
       2021-10-02 15:32:01 +08:00   5
    我觉得就是这个原因。你看虽然你一屏显示的图片有限,但是你总不应该图片划过去了就删除内存对象,划回来了再重新解码 jpg 吧?那这种时候就不是内存占用的问题,是滑动起来一卡一卡的。一个页面上的所有图片驻留在内存里,这个做法还是比较合理的做法呀。除非一开始就打算了要显示一堆图片,针对性优化的。。。(比如长 word 的显示就应该优化了,但是 typora 一个 markdown 文档,人家也没想过这种硬核应用场景)
    wellsc
        4
    wellsc  
       2021-10-02 15:43:41 +08:00 via iPhone
    @ipwx 大佬牛逼,又学到了新知识
    delectate
        5
    delectate  
       2021-10-02 16:05:31 +08:00
    我并不同意,比如 firefox,我经常开几十个标签页,不乏图片很多的网站,但是也没有出现过这种情况。

    很可能是 electron 的锅。
    zxCoder
        6
    zxCoder  
       2021-10-02 16:16:20 +08:00   3
    不是图片的问题,typora 字多了也卡
    ipwx
        7
    ipwx  
       2021-10-02 16:29:41 +08:00
    @delectate 优化过了吧。毕竟 firefox / chrome 都是一堆人开发,typora 只有一个人开发。

    其实真的想要去优化大量图片的显示,肯定是有办法的。时间换空间,就好像我上面说的,想办法图片需要显示的时候再解压呗。再比如 Google snappy compression,压缩比不错速度又快( 1GB/s 级别的),拿来压缩裸图片二进制数据流肯定是行的。哪怕是直接每次显示图片都重新从磁盘读,优化的不好可能会卡,但是优化好了也不见得多卡。

    图片可以预先扫一遍获得 height width 信息,内存里面只存图片的大小和源,排版过程中计算高度只用信息不用图片对象,想必也能搞定。Chrome / firefox 可能确实有各种复杂的优化在,但是 typora 就算用了 electron / webkkit 也不见得把这些功能都用上了呗。
    hst001
        8
    hst001  
       2021-10-02 16:37:11 +08:00 via Android
    跟图片没什么关系,应该是 typroa 没对大页面做优化,一股脑把所有内容都丢给浏览器 build,慢是当然的
    ipwx
        9
    ipwx  
       2021-10-02 16:41:43 +08:00
    @hst001 不过说真的,有些东西真不容易计算高度。比如公式,多行公式之类的。。。

    Markdown 除了 typora 之外全都不能用的主要原因,就是图片、公式多了,左右同步滚动的高度计算就是 shit 。也就行内混合的模式能支撑这种复杂的应用了。前段时间好像还有人在开发行内混合的 markdown 编辑器( js 控件),milkdown 的,等一波看看后续发展。
    Magentaize
        10
    Magentaize  
       2021-10-02 16:41:48 +08:00 via iPhone
    可能在真实滚动所有 DOM (
    hst001
        11
    hst001  
       2021-10-02 17:01:03 +08:00 via Android
    @ipwx 像这种编辑器可以按块来划分,节点不能做深度嵌套,每个块在内容变动时 build 一次然后缓存尺寸,基本上可以应付大多数情况了,反正尽量不要深度嵌套,嵌套一深就不好对付
    ipwx
        12
    ipwx  
       2021-10-02 17:54:41 +08:00
    @hst001 总是能做的,但这就复杂了。。。

    typora 看上去就没做这种程度的优化,都丢给下层了。
    LudwigWS
        13
    LudwigWS  
       2021-10-02 19:44:39 +08:00 via iPhone
    @ipwx 看来 Word 还是有很多学问可以研究
    csfreshman
        14
    csfreshman  
       2021-10-02 22:14:57 +08:00
    插个眼,我 typora 也卡,我怀疑是我 15 年 mbp 性能不行的锅。
    rpish
        15
    rpish  
       2021-10-03 02:34:18 +08:00
    可以来用 notion,如果不是用卡片笔记的话
    notion enhancer 常驻后台 不会有卡的问题
    niantoudeyisi
        16
    niantoudeyisi  
       2021-10-03 11:22:51 +08:00 via Android
    字多了也卡
    duck2
        17
    duck2  
       2021-10-03 14:34:59 +08:00
    @ipwx 解析本地的图片和图床上的图片连接对比在占用内存方面 有啥区别嘛
    imycc
        18
    imycc  
       2021-10-03 15:23:20 +08:00
    我之前用 eletron+vue+elementui,写个一个非常简单的看漫画程序,本地滚动加载几十张图好像也没有卡顿。
    会不会是 typora 需要渲染 markdown 所造成的性能问题
    ipwx
        19
    ipwx  
       2021-10-03 18:19:16 +08:00
    @duck2 如果都是载入内存,那应该没有吧 2333
    AItsuki
        20
    AItsuki  
       2021-10-03 19:41:58 +08:00
    很简单,将你的 markdown 用 vscode 打开试试,看还卡不卡。vscode 是我用过最舒服的 markdown 编辑器…… 你不一定需要 Typora 这种所见即所得的功能,实际上它编辑起来比较麻烦
    sprite82
        21
    sprite82  
       2021-10-04 10:58:21 +08:00
    @AItsuki vscode 可以打开侧边栏预览的,也是所见所得
    keling
        22
    keling  
       2021-10-04 21:23:31 +08:00
    用图床吧,本地放图片的话,你的 markdown 笔记怎么在各个设备之间同步。
    f2ck
        23
    f2ck  
       2021-10-09 13:14:25 +08:00
    奇卡无比 你用的是 base64 ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2502 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 11:00 PVG 19:00 LAX 03:00 JFK 06:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86