查看原文
其他

dirtrace - 终极文件夹内容占比查看工具

everettjf 首先很有趣 2019-10-31


背景

经常有分析一个文件夹内文件占用大小的需求(例如分析移动App的安装包大小),一直以来 GrandPerspective[1] 基本满足了这个需求,但使用时时常希望能看到文件夹的父子关系,FolderSizeView[2] 解决了这个需求。

然而,FolderSizeView的性能太差,文件夹内容太多时(比如分析下Xcode.app中的文件大小)就扛不住了。其实FolderSizeView发布后就陆陆续续有人反馈文件内容太多分析不出结果,交流后发现大家竟然拿FolderSizeView与一些硬盘分析工具做对比,由于设计初衷只是分析App安装包,解决了我个人的需求,因此我也就不想投入时间优化了。

然而……

真实背景:

最近入职新公司,在分析了解公司App的方方面面,分析到沙盒内容时,发现我可爱的FolderSizeView扛不住了,直接啥也不显示。郁闷的我只得先用GrandPerspective临时顶住。GrandPerspective能满足一定的需求,但总觉得用得不爽。昨天下班回家路上想啊想,咋解决呢…… 突然一个微信群里有人提到了我开发的另一个工具Messier(见订阅号或博客的历史文章) 顿时醒悟,也可以用chrome tracing展示文件夹大小呀

> 下地铁后,马上跑回家> 陪娃玩> 讲故事> 娃终于睡觉> 启动PyCharm> ……> 159行代码> 终于搞定> 发布到pip> 在一个经常水的群里发了下> 然而……这个回复……> 先睡觉吧

> 唤醒> ……> location changed to 幼儿园> location changed to home> 开始写这篇文章

用途

把一个文件夹的内容,用 Chrome Tracing 展示出来,表示出文件的大小关系,并能愉快的浏览(放大缩小)。

例如有这样的文件夹结构:

那么用工具展示的效果如下:

那么如果是一个超级大的文件夹呢,例如Xcode /Application/Xcode.app,会展示成下图:

那么下面这么小的文件是什么,怎么看呢。可以按w a s d放大缩小移动。如下gif:

(订阅号文章里的gif好像动不起来,查看原文可以看)

好玩~

安装

dirtrace使用了Python开发,使用pip即可安装。

pip install dirtrace

如果你的Python环境没有安装pip,只需要下载 https://bootstrap.pypa.io/get-pip.py 这个文件,然后 python get-pip.py即可安装完成。

使用

只需要两个步骤(So easy,再也不用担心我不会分析文件夹了)

第一步:生成json

dirtrace -d <directory-path>dirtrace -d <directory-path> -o <output-json-path>

例如:

dirtrace -d /Application/Contacts或者dirtrace -d /Application/Contacts -o ~/Desktop/trace.json

注意:输出格式为json,如果不指定-o参数,会在当前工作目录生成trace.json

第二步:查看

打开Chrome浏览器(必须是Chrome浏览器),打开

chrome://tracing/

如图:

把刚才生成的trace.json文件推拽到Chrome中

大功告成,试试w a s d f等操作吧。

源码

https://github.com/everettjf/dirtrace

交流

如果需要交流,就关注下文的订阅号,点击菜单dirtrace入群(或者回复dirtrace)

群内仅用于临时交流,也可能过段时间没人说话就解散了哈。

总结

dirtrace小工具,从开发到最后发布2个小时左右,中间甚至玩了几局弓箭传说(第三章太难了,准备卸载了),唯一需要注意的是要早点睡觉了哈。

好了。

大家喜欢的话,点一下「在看」,关注一下订阅号,以示鼓励。

References

[1] GrandPerspective: http://grandperspectiv.sourceforge.net/
[2] FolderSizeView: https://everettjf.github.io/2019/07/07/foldersizeview/


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存