前端内存优化知多少?内存泄露只是冰山一角、什么是架构的本质? | 酱酱的下午茶第166期

4,047 阅读6分钟

Hello,又到了每天一次的下午茶时间。酱酱们的下午茶新增优质作者介绍和码上掘金板块,专注于发掘站内优质创作者和优质内容,欢迎大家多提宝贵意见!

本文字数 1800+,阅读时间大约需要 6 分钟。

  • 【本期掘金酱的下午茶】亮点:
  • 百度工程师带你了解Module Federation
  • “堆外缓存”这玩意是真不错,我要写进简历了。
  • 云音乐 Android 内存监控探索篇
  • ……

筛选规则:文章发布时间在本期「掘金酱的下午茶」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。

今日主理人|下午茶

本期每日掘金由  丘山子  负责制作,需要投稿下午茶请私信我的助理 小岳

PS:主理人目前正在招募中,有感兴趣的掘友们可以联系Captain

每日干货|下午茶

主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。

『前端』

前端开发者往往不太关注页面所占用的内存,因为前端内存的分配与回收基本是依靠系统自动完成的,这个过程对于开发者是无感的

但内存优化的作用也同样重要,一个好的网站,内存的优化也是极致的,比如淘宝的首页,只有 10M 大小

特别是随着前端项目的逐渐复杂,内存的占用也逐渐攀升,曾经遇到过页面的内存超 300M,同时打开几个窗口,就造成了页面崩溃

在编程中,我们经常会想获取并扩展一些东西。

例如,我们有一个 user 对象及其属性和方法,并希望将 adminguest 作为基于 user 稍加修改的变体。我们想重用 user 中的内容,而不是复制/重新实现它的方法,而只是在其之上构建一个新的对象。

这时候JS的继承特性就可以帮我们完成这一需求,准确点来说应该叫原型继承,这里的原型是一个对象,后面我们会展开说。

你知道当一个人的头像从一个圆圈或洞里伸出来时的那种效果吗?本文将使用一种很简洁的方式实现该悬停效果,可以用在你的头像交互上面。

本文介绍了Module Federation的概念、应用场景,并结合具体的代码示例帮助大家对Module Federation的模块共享,公共依赖加载有个初步的认识,方便后续更深入的学习相关内容,同时也给微前端的探索提供一种新的思路,定会给大家一定的提升和启发。

在前端的发展道路中,前端框架元老之一jQuery对繁琐的DOM操作进行了封装,提供了链式调用、各类选择器,屏蔽了不同浏览器写法的差异性,但是前端开发过程中依然存在作用域污染、代码复用度低、冗余度高、数据和事件绑定烦琐等痛点。

5年后,Backbone横空出世,通过与Underscore、Require、Handlebar的整合,提供了一个轻量和友好的前端开发解决方案,其诸多设计思想对于后续的现代化前端框架发展起到了举足轻重的作用,堪称现代前端框架的基石。

通过对Backbone前端框架的学习,让我们领略其独特的设计思想。

『后端』

“堆外缓存”这玩意是真不错

在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。

Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构。

作者:架构精进之路
链接:juejin.cn/post/719695…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?

面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ 可能会很麻烦,但是你现在用了 MQ 之后带给了你很多的好处。

之前楼主在准备面试时恶补Java并发和JUC, 对其中AQS的实现一直没有很明确的理解,网上论AQS实现的文章也都是一笔带过(其实有很详细的,但可阅读性和源码差不太多) 于是决定自己对战源码,并将过程记录,以帮助和我一样想了解原理的小伙伴。

『移动端』

随着云音乐不断的对线上崩溃治理,目前崩溃率已经达到了行业内较低水平。但线上还存在很多 OOM 的崩溃,这种崩溃大多是因为编码不规范导致的内存异常问题(比如内存泄露、大对象、大图等不合理的内存使用)。内存问题难发现、难复现和难排查。这就需要我们通过一些监控手段和一些工具去协助开发人员更好的排查此类问题。 接下来就是云音乐在内存监控方面的一些探索和实践。

项目中目前有关于APP物理内存、系统物理内存等内存状态的获取API,但是一直缺少获取虚拟内存相关的API。之前业务上也出现过因为虚拟内存耗尽导致的crash,后续也通过com.apple.developer.kernel.extended-virtual-addressing的设置为APP扩展虚拟内存的可用范围。本文主要基于以上背景对虚拟内存进行一些调研

📖 投稿专区|下午茶

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。