微信占用空间简析 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zbinlin
V2EX    问与答

微信占用空间简析

  •  
  •   zbinlin 2021-07-21 23:38:41 +08:00 5629 次点击
    这是一个创建于 1543 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看到 ://www.v2ex.com/t/789383 关于微信占用空间的讨论,刚好我手机里存储空间也告急了,想清理下,就查看了下微信的空间占用情况。

    通过系统的 App 详情那里查看到 App site 为 379 MB 、User data 为 6.20 GBa,然后查看了微信自带的 Manage Storage 统计,Wechat Storage Used 为 5.8 GB,其中 Chat Histories 占用 1.8 GB 。

    然后我粗略地统计了 /data/data/com.tencent.mm/ 下各文件夹的占用情况(总共占用 3.9 GB,这里只列出占用比较大的目录)

    42M ./cache 528M ./files 1.9G ./MicroMsg 120M ./app_webview_com_tencent_mm 17M ./app_tbs 11M ./app_webview_com_tencent_mm_tools 584M ./app_webview_com_tencent_mm_sandbox 97M ./app_tbs_64 186M ./tinker 37M ./app_x5webview 105M ./app_xwalk_2852 178M ./app_xwalk_2691 102M ./lib-0 

    3.9 + 1.8 ~= 5.8,基本符合 Storage 里的统计。

    以下是 ./MicroMsg 的目录统计:

    299M ./MicroMsg/expansions 1.2G ./MicroMsg/54****************************** 1.1G ./MicroMsg/54******************************/image2 12M ./MicroMsg/54******************************/avatar 65M ./MicroMsg/54******************************/EnMicroMsg.db 88M ./MicroMsg/54******************************/appbrand 307M ./MicroMsg/webview_tmpl 6.8M ./MicroMsg/appbrand 1.5M ./MicroMsg/webcompt 40M ./MicroMsg/luckymoney 14M ./MicroMsg/CheckResUpdate 

    这里面在我的账号(54******************************)下,发现 image2 这个文件夹占的比重最大,里面应该是一些图片。 将其 pull 到电脑上查看,发现其中的一个群组里的图片占多数,但将该群的聊天记录清除后,其占用大小依然不变。

    31 条回复    2021-07-23 09:40:26 +08:00
    dji38838c
        1
    dji38838c  
       2021-07-21 23:42:46 +08:00
    聊天记录清除后,文件没有被删除吗?
    zbinlin
        2
    zbinlin  
    OP
       2021-07-21 23:51:47 +08:00
    @dji38838c 这里我执行的是 Chat Info -> Clear Chat History 的操作,确实没有删除在 `./MicroMsg/54******************************/image2`里的图片,但好像还有一个在 General -> Manage Storage -> Manage 选择对应的联系人来删除的,不知道这个操作是否有效。

    另外要注意下,这里的 `./MicroMsg/54******************************/image2` 是在 `/data/data/com.tencent.mm/` 目录下的,而不是在 `/sdcard/Android/data/com.tencent.mm` 下的。我觉得后者才是用户空间,前者应该是程序空间,但为什么在程序空间下会存储用户数据,由于不懂 Android 不是很理解。
    bclerdx
        3
    bclerdx  
       2021-07-22 00:13:27 +08:00
    关注此贴。
    jim9606
        4
    jim9606  
       2021-07-22 00:29:26 +08:00
    @zbinlin 按照 Android 设计,/data/data 适合存放敏感数据,因为在所有 Android 版本中这个目录都只能由 APP 自己读写,没有不使用 root 越权访问的方法。/sdcard/Android/data 适合较大体积非敏感数据,可能位于可拆除的 SD 卡上,可能不受系统加密保护,且在 Android11 强制实现分区存储前,其他拥有存储权限的 APP 可以越权读写该目录,启用分区存储后,用户可以依然通过 adb 或 mtp 读写该目录。
    jim9606
        5
    jim9606  
       2021-07-22 00:37:04 +08:00   1
    考虑到 /sdcard 可能不受加密和权限控制保护,微信选择将聊天记录放 /data/data 还算可以理解。另外放 /sdcard/Android/data 有可能会被别的 APP 偷数据或者乱改(“优化”)改坏,TX 还不好追踪是谁的锅。如果放 /data/data,只要没 root 那要么是系统自带的 app 干的要么是微信自己干的,好查 bug 。
    imldy
        6
    imldy  
       2021-07-22 00:54:40 +08:00 via Android
    webview 简直了
    so1n
        7
    so1n  
       2021-07-22 00:55:03 +08:00   1
    我记得之前的版本群里每收到一个小程序,手机就存一张小程序的照片,即使你没打开这个群,删除这个群也不会删除小程序的照片 巨恶心
    zbinlin
        8
    zbinlin  
    OP
       2021-07-22 01:08:26 +08:00
    @jim9606 我之前还以为它聊天记录是加密保存在 /sdcard/tencent/ 或 `/sdcard/Android/data/` 下的呢
    sapphires
        9
    sapphires  
       2021-07-22 01:57:38 +08:00 via iPhone   2
    @so1n 是的,加了一个微信读书群,之前一段时间每天都要手动清理上千张完全相同的微信读书小程序封面,吐了。
    derekwei
        10
    derekwei  
       2021-07-22 08:25:41 +08:00
    借用对领导干部说的那句话:当自觉净化“朋友圈”
    yyysuo
        11
    yyysuo  
       2021-07-22 08:49:06 +08:00
    因为是 log,并不是聊天记录,所以清除不了吧。
    levelworm
        12
    levelworm  
       2021-07-22 08:54:42 +08:00
    微信我觉得就是程序员懒,反正什么都不清理堆在那里。
    smdbh
        13
    smdbh  
       2021-07-22 09:27:03 +08:00
    搞清楚了,那 512g 手机怎么卖
    zbinlin
        14
    zbinlin  
    OP
       2021-07-22 09:35:53 +08:00
    @yyysuo 那是 image2 里的图片,有 2 万多张,不是 log 。

    PS:这里清不了的原因有点头绪了,要进一步确认下。
    vmebeh
        15
    vmebeh  
       2021-07-22 10:20:53 +08:00 via iPhone
    建议统计一下文件数量、log 文件分布
    Mithril
        16
    Mithril  
       2021-07-22 10:44:29 +08:00
    @zbinlin 微信的老毛病了,删聊天但是不会删除聊天中的图片缓存。
    更神奇的是你还打不开,缓存的东西就死在那了。直到你卸载了微信再重装( iOS )。
    清理聊天记录或许可以。
    dickinpit
        17
    dickinpit  
       2021-07-22 10:58:14 +08:00
    期待进一步研究成果
    dickinpit
        18
    dickinpit  
       2021-07-22 12:05:51 +08:00   1
    明白了。这个 image2 臭名昭著,QQ 桌面版就有各种缓存图片,基本上每个用户的 QQ 文件夹里,它都是最大的,而且删聊天记录并不会把它一并删掉,而是需要手动时不时把这个文件夹整个删掉。现在看来,手机上的微信也是这个逻辑,只不过以前,image2 在内部存储里,用户不必 root 也能看到,也能像 QQ 一样手动删。但在某个版本之后,微信就把这些东西搬进了 /data/data,不 root 是找不到的。楼主既然能看到,不知直接删掉会怎样......
    icyalala
        19
    icyalala  
       2021-07-22 12:25:44 +08:00
    同一张图片转发到多个群后,本地是指保留一份文件吗?
    如果是这样的话,是不是要走一次 Full GC,Stop-the-World ?
    run2
        20
    run2  
       2021-07-22 12:38:21 +08:00
    大多数开发商都这个怪毛病,一直缓存文件,过期清理? 您自己想起了再手动点吧!
    0TSH60F7J2rVkg8t
        21
    0TSH60F7J2rVkg8t  
       2021-07-22 13:12:21 +08:00
    @icyalala 我认为是多张,因为我发现,同一个视频,往其它群里转(长按,转发),有时候是进行的上传操作,而不是直接快传完成。
    yfugibr
        22
    yfugibr  
       2021-07-22 13:15:10 +08:00 via Android   1
    @sobigfish 可惜微信是你想起来也没法清,除非清楚所有数据
    ZeroDu
        23
    ZeroDu  
       2021-07-22 13:18:14 +08:00   1
    刚看了下,微信一共占用 14GB ...
    ccloudk
        24
    ccloudk  
       2021-07-22 13:23:09 +08:00 via Android   1
    可能不舍得存服务器,但又想以后再查吧
    Mithril
        25
    Mithril  
       2021-07-22 13:36:08 +08:00   1
    @icyalala 不会的,它会直接 nuke-the-world 然后从头再来。
    FFFFourwood
        26
    FFFFourwood  
       2021-07-22 15:21:53 +08:00
    真恶心 啥时候 国内能有 tg 之类的 app 替代微信 或者 ios 的 imessgae 普及全平台
    前几天 mac 上微信小助手的也凉了
    zbinlin
        27
    zbinlin  
    OP
       2021-07-22 20:54:07 +08:00
    @dickinpit 不敢删除呀
    zbinlin
        28
    zbinlin  
    OP
       2021-07-22 20:57:21 +08:00
    @vmebeh 不太清楚哪些是 LOG 文件,这里我把它们都列出来了,paste.ubuntu.com/p/RcCQwWDsJ2/
    delectate
        29
    delectate  
       2021-07-22 22:43:15 +08:00   1
    我有两个问题:
    1 、腾讯的服务器带宽难道廉价到根本不花钱吗?转发这些细碎的文件,难道不占用服务器软硬件和带宽资源吗?
    2 、对于客户来说,大量碎片文件,直接降低了 flash 的 io 性能,而且占用了这么多存储,难道不是硬件厂商的合谋?

    解决方案其实很简单啊,要么给按日期清理的工具,要么删会话则删缓存,至少 qq 都提供类似的工具啊!而且文件都是一样的 md5,也许有心人可以写一个 md5 判重再做软链的脚本,无法挽救细碎的小文件,至少挽救一下可怜无辜的存储空间吧。

    综上所述,我觉得,其实只是单纯的,腾讯的程序员水平太差罢了!
    vmebeh
        30
    vmebeh  
       2021-07-23 09:37:36 +08:00 via iPhone
    @zbinlin 没找着,不知道是不是还是在 /sdcard/tencent 里面

    近四万小文件…
    vmebeh
        31
    vmebeh  
       2021-07-23 09:40:26 +08:00 via iPhone
    疼讯:这么多小文件删起来写入放大谁的手机受得了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2586 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 04:52 PVG 12:52 LAX 21:52 JFK 00:52
    Do have faith in what you're doing.
    ubao 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