前言 公司的视频聊天源码,有不少类14年的代码也有,可谓见证了该项目的持续辉煌,结果一搜,有些类没有被调用,看来当年的开发者不忍心删掉,就持续到现在了。我相信不少项目都会出现这种情况,要么先注释掉,要么先放着,又担心删掉,到时候需求回来,去git上还要慢慢找回来。但有一些隔得太长久了,就是时候删掉了。 无用到的照片 LSUnusedResources 一个 Mac 应用程序,用于在 Xcode 项目中查找未使用的图像和资源。 在github有3.7k个星。 用法
打开LSUnusedResources,在 Project Path 填入我们要搜索的项目,选择Search。
我们可以看到搜索结果,居然有314张没有使用,大小占3400KB左右,是真实的吗?我们优化一下。
其实这里就选择了 Ignore similar name,匹配使用资源的正则表达式,比如@“image_%d”会忽略掉后缀的图片。 别以为这样就保证全部都是无用的图片,但我们基本就可以围绕着这些去删掉图片,优化2M大小还是可以的。 FengNiao FengNiao 是一个简单的命令行实用程序,用于从您的 Xcode 项目中删除未使用的图像资源文件。 在github上有2.8k个星 这里怎么用呢,可以打开上面链接,里面有说到怎么用。这里我贴一位大佬写的,可以作为参考。 无用到的代码 LinkMap 这个工具是专为用来分析项目的LinkMap文件,得出每个类或者库所占用的空间大小(代码段+数据段),方便开发者快速定位需要优化的类或静态库。 在GitHub上有1.6k的星 我们下载后,运行就可以看到下面的界面了。
步骤操作
-
开启 write link Map File。
-
打开~/Library/Developer/Xcode/DerivedData/XXX-xxxxxxxxxxxxx/Build/Intermediates/XXX.build/Debug-iphoneos/XXX.build/XXX-LinkMap-normal-arm64.txt。
可以看到LinkMap文件有3部分: Object Files,里面包含代码工程的所有文件。
Sections,描述了代码段在生成的 Mach-O 里的偏移位置和大小。
Symbols,会列出每个方法、类、block,以及它们的大小。
3.使用LinkMap工具打开刚刚的txt文件,点击输出。
全部的库大小和库名称我们都可以看到。哪些库占用大的,我们就可以看下视频聊天源码是否存在优化的空间。 4.结合mach-o使用 我们打开XXX.app包,显示包内容,里面有很多资源文件,我们也可以在那里看看有没有优化空间,使用MachOView打开app可执行文件,就可以看到很多编译信息。 具体使用可以查看这篇文章:Mach-O 探究。 重要的有3个: __objc_classrefs记录了哪些class被引用了,这里记录了所有被实例化的class,有些类虽然在包里,但是我们并未使用,因此这里不会有。 __objc_selrefs记录哪些SEL对应的字符串被引用了,有系统方法,也有自定义方法。 __objc_superrefs记录了调用super方法的类。
appCode 打开appCode,选择code -> inspect Code,进行静态分析。
等编译完成后,我们就可以看到以下信息
我们要看的是无用的代码,Unused Code。
-
Unused class:无用的类;
-
Unused global declaration:无用的全局声明;
-
Unused import statement:无用类的引入声明;
-
Unused instance variable:无用的实例变量;
-
Unused local variable:无用的局部变量;
-
Unused macro:无用的宏;
-
Unused method:无用的方法;
-
Unused parameter:无用的参数;
-
Unused property:无用的属性;
-
Unused value:无用的值。
这个就直接明牌了,哪些没有用到的都显示出来了。当然我们还是需要在工程内小心核对,以免误删。 不说了,要赶时间去优化视频聊天源码了。
声明:本文由云豹科技转发自可爱亲宝宝博客,如有侵权请联系作者删除