写点什么

LinkedIn 应用体积臃肿达 500 MB,网友怒喷:大厂开发者都没有动力创造优秀应用?!

  • 2024-04-22
    北京
  • 本文字数:1349 字

    阅读完需:约 4 分钟

LinkedIn 应用体积臃肿达 500 MB,网友怒喷:大厂开发者都没有动力创造优秀应用?!

最近,有人在 Hacker News 指出 iOS 版 LinkedIn 应用体积接近 500 MB 大小,十分臃肿,而且其中 300 MB 是链接的框架和插件。



这一消息引发了众多网友的讨论,很大一部分是对 LinkedIn 批评:


“大胆猜测一下,LinkedIn 最具价值的用户,也就是那些拥有抢手技能的人,应该都用着高性能设备。因此,他们对于应用体积大小的问题,应该不会太在意。”


“他们无法进行‘臃肿应用’和‘优质应用’的安装数据对比测试,也无法得知人们不安装某个应用的原因。也正因为如此,我一直尽可能少地安装应用程序。一些应用程序就是些臃肿的垃圾。这种负面影响还会累积。即使以后 LinkedIn 花时间来改进他们的应用程序,也无法摆脱声誉受损带来的负面影响,我仍然不会考虑安装它。”


“对应用体积大小,大厂们常常不在意。因为那些因体积和 / 或性能问题而避开他们应用的用户,并不是那些拥有丰厚钱包 (或拥有宝贵数据) 的目标用户。”


“对于 LinkedIn 应用开发者来说,他们没有动力去创造一个优秀的应用。他们的工作内容主要是让他们的产品经理感到满意。LinkedIn 应用可能涉及数百甚至上千名开发人员,他们往往承受着巨大的‘尽快发布’的压力。其中一些人会认为一些奇怪的做法是理所当然的,例如静态链接到资源库——这可能是因为缺乏意识或能力不足,也可能是为了应付绩效考核。”



那么为什么 LinkedIn 应用有快 500 MB?先来看最新版 LinkedIn 的顶层视图:



其中 300 MB 是动态链接的框架和插件……确实相当“肥硕”。事实上,当前光 Dylibs 和插件的尺寸就已经超过了 2022 年 11 月版的完整应用体量。



其中插件和框架似乎是最臃肿的部分。下图所示,为 LinkedIn 插件 + 动态链接的 Voyagerlibs.framework。


大家注意到哪里不对劲了吗?




首先,这两款插件加上 VoyagerLibs 都附带有 ArtDecolconsResources.bundle(约为 8 MB),而这个捆绑包本身就存在于 Voyager Framework 当中,因此本该跟各插件共享……但 LinkedIn 仍然保留了下来。



再查看 TodayExtension、NotificationExtension 和 VoyagerLibs,就会发现其中包含大量重复的类名(如截屏部分所示)。


虽然我们并不确定它们跟公共 build 分析部分是否重复,但这些扩展似乎同样属于 VoyagerLibs 库的子集。



其他值得注意的还有:2023 年 3 月,TodayExtension 还不到 400 KB,到现在已经有约 60 MB……


考虑到 Today Extensions 已经被弃用,我们可以合理怀疑新增的部分到底有没有意义。




LinkedIn 很可能是在插件中对依赖项采用了静态链接方式,而非调用 VoyagerLibs 中的资源。


如果确实如此,那么插件(总共 109 MB)中肯定存在大量非必要内容。


此外,我们还发现了约 75 MB 的 insights。



关于我们对最新版本 LinkedIn 的完整分析,这里是详情:


https://www.emergetools.com/app/example/ios/com.linkedin.LinkedIn


有意思的是前两天我们刚发过一篇关于如何避免插件臃肿的博文:《将 iOS 应用体积缩小一半的秘籍:妥善运用动态框架


原文链接:


https://threadreaderapp.com/thread/1772350918534582525.html


声明:本文由 InfoQ 翻译整理,未经许可禁止转载。


今日好文推荐


前端未死,只是换了新样貌


将 iOS 应用体积缩小一半的秘籍:妥善运用动态框架


52% 的速度提升!美版“携程”如何利用微前端架构和 GraphQL 优化航班搜索?


AI 手机来了,App 将消亡,前端开发范式变了!


2024-04-22 19:314776

评论

发布
暂无评论
发现更多内容

JVM真香系列:堆内存详解

田维常

Java JVM 堆栈 虚拟机

十年资深架构师分享:如果这么做还收不到一线互联网大厂面试,请来找我。

Java架构师迁哥

快速了解阿里微服务热门开源分布式事务框架——Seata

比伯

Java 架构 微服务 seata

深入解析 Flink 的算子链机制

Apache Flink

flink 流计算

薇娅和李佳琦带货百亿奇迹背后是这些技术团队的努力

阿里云CloudImagine

阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质

Java~~~

MySQL 阿里 sql查询 SQL优化 SQL光标

当代程序员必备技能(算法)之:递归详解

Java架构师迁哥

堪称完美!11月华为官方首发Spring响应式微服务,Spring+SpringBoot+SpringCloud三管齐下

Java架构追梦

Java 架构 微服务 springboot SpringCloud

【活动回顾】Flutter实时音视频应用场景实践

ZEGO即构

flutter RTC

与第三方系统打通的N种进阶方式

棒锤🐮

架构

[译文]设计模式01 – 抽象工厂模式(附代码实例)

YoungZY

设计模式 译文

《分布式Java应用基础与实践》.pdf

田维常

分布式 电子书

堪称完美!11月华为首发Spring响应式微服务,三管齐下

小Q

Java spring 学习 架构 面试

腾讯云直播全解析,双11怎么买才不亏?

腾讯云音视频

腾讯云 阿里云 云直播 直播 视频

三部门联合发言不得虚报直播销售额业绩:双十一何以刺激了用户的购买欲

石头IT视角

携oneAPI Gold版本和服务器GPU 英特尔领先业界进入XPU时代

E科讯

详解快速开发平台与工作流通用组件的设计规范

Marilyn

敏捷开发 企业应用

CloudQuery v1.2.1 版本发布

BinTools图尔兹

数据库 开发者 运维 工具 开发工具

奈学教育荣获“中关村高新技术企业”认证

古月木易

教育 IT

Linux一切皆文件,如果你没做到这一步,那这就是句话而已

小Q

Java Linux 学习 架构 面试

实时音视频面视必备:快速掌握11个视频技术相关的基础概念

JackJiang

音视频 即时通讯 视频

第八周作业

Geek_4c1353

极客大学架构师训练营

从应用开发角度认识K8S

LorraineLiu

容器 云原生 k8s入门

奈学教育荣获“中关村高新技术企业”认证

奈学教育

奈学教育

氪信团队再夺冠!易观数科第四届OLAP算法大赛前三甲诞生!

易观大数据

数据库 算法 OLAP

双十一背后的技术

anyRTC开发者

大数据 AI 音视频 WebRTC RTC

【涂鸦物联网足迹】涂鸦云平台接口列表—万能红外遥控器

IoT云工坊

人工智能 云计算 物联网 API 红外遥控器

深入浅出node中间件原理

徐小夕

Java node.js 大前端 中间件 数据可视化

apipost如何设置断言

测试人生路

接口测试

我终于拥有自己的独立博客了。

彭宏豪95

GitHub 写作 博客 IT

科技助力餐饮,普渡送餐机器人在餐博会上被众人围观!

DT极客

LinkedIn 应用体积臃肿达 500 MB,网友怒喷:大厂开发者都没有动力创造优秀应用?!_工程化_核子可乐_InfoQ精选文章