23__逃逸分析

我们知道,Java 中Iterable对象的 foreach 循环遍历是一个语法糖,Java 编译器会将该语法糖编译为调用Iterable对象的iterator方法,并用所返回的Iterator对象的hasNext以及next方法,来完成遍历。

23__钨丝计划:Tungsten给开发者带来了哪些福报?

你好,我是吴磊。

通过前两讲的学习,我们知道在 Spark SQL 这颗智能大脑中,“左脑”Catalyst 优化器负责把查询语句最终转换成可执行的 Physical Plan。但是,把 Physical Plan 直接丢给 Spark 去执行并不是最优的选择,最优的选择是把它交给“右脑”Tungsten 再做一轮优化。

23__效率工具:选对用对才能事半功倍

你好,我是葛俊。今天,我来和你聊一聊效率工具。

在前两篇文章中,我分别从编程技术和工作方式两个方面,与你介绍了如何提高个人研发效能,成长为 10x 程序员。今天,我再与你分享些工具使用方面的技巧和方法,来帮助你全方位地提高自己的工作效率。

23__选型:etcd_ZooKeeper_Consul等我们该如何选择?

你好,我是唐聪。

在软件开发过程中,当我们需要解决配置、服务发现、分布式锁等业务痛点,在面对etcd、ZooKeeper、Consul、Nacos等一系列候选开源项目时,我们应该如何结合自己的业务场景,选择合适的分布式协调服务呢?

23__渲染流水线:CSS如何影响首次加载时的白屏时间?

上一篇文章中我们详细介绍了 DOM 的生成过程,并结合具体例子分析了 JavaScript 是如何阻塞 DOM 生成的。那本文我们就继续深入聊聊渲染流水线中的 CSS。因为 CSS 是页面中非常重要的资源,它决定了页面最终显示出来的效果,并影响着用户对整个网站的第一体验。所以,搞清楚浏览器中的 CSS 是怎么工作的很有必要,只有理解了 CSS 是如何工作的,你才能更加深刻地理解如何去优化页面。

23__异步架构:如何避免互相依赖的系统间耦合?

上一篇文章中我们讨论过,使用缓存架构可以减少不必要的计算,快速响应用户请求。但是缓存只能改善系统的读操作性能,也就是在读取数据的时候,可以不从数据源中读取,而是通过缓存读取,以加速数据读取速度。

23__增长的核心在于减少用户阻力

相信通过前面的几篇文章,你已经掌握了“了解、找到、执行”增长理论,也优化了你团队的增长工作流,你甚至知道现在的数据哪步不好看,但是却还不知道如何解决。

23__知其然,知其所以然:数据的持久化和一致性

你好,我是四火。

我想你很可能已经使用过许多存储层的技术了,例如缓存、文件、关系数据库,甚至一些云上 key-value 的存储服务,但就如同我之前提到的那样,某项具体技术总是相对好学,可对于全栈知识系统地学习,也包括持久层的学习,是一定要立足于技术的基础、原理和本质的。今天,我们要讲的就是其中之一 —— 一致性(Consistency)。