Booster 4.5.3 版本发布
Booster 又双叒叕发布了新的版本—— v4.5.3,本次更新内容如下:
- Fix issue #284 - compressing processed resource file
Booster 又双叒叕发布了新的版本—— v4.5.3,本次更新内容如下:
Booster 又双叒叕发布了新的版本—— v4.5.1,本次更新内容如下:
Booster 之所以保持着高性能,除了并行 I/O 以外,还有一个很重要的方面 —— 单次 I/O。可能有人会问,什么叫单次 I/O?所谓单次 I/O 是指,在 Transform 的过程中,对于每一个输入 (JAR/DIR) ,Booster 只需要一次读和一次写,便可以实现整个 app 的字节码以流水线的方式进行处理,也就是 Bytecode Transform Pipeline。这就意味着,每个 Transformer
只有一次机会来处理 class ,但如果想要在 Transformer
先收集一些信息,再在 Transform 的过程中将这些收集到的信息,以字节码的方式写入到某个 class 中,就不太容易实现。一个典型的例子便是 SPI 优化,虽然 R8 可以对 SPI 进行化,但是,对写代码的姿势有一定的要求。
Stability is one of the three most important metrics for Coupang apps in providing a Wow customer experience. The mobile app monitoring platform aims to provide a reliable, easy-to-use, high extensibility monitoring platform for Coupang family apps. The platform supports not only mobile apps but web apps. The platform is based on the Lumberjack logging system and supports high-performance real-time stack trace de-obfuscation and symbolication within a few milliseconds (the industry standard is in hours). Thus, it is able to detect the issue within 3 mins and identify the root cause within 2 mins. Its high extensibility allows us to build more QoE/QoS metrics.
Booster 又双叒叕发布了新的版本—— v4.3.0,本次更新内容如下:
Transformer
,并同时支持 ASM 和 Javassist尽管我使用 Java 编程已有十年有余,但其实 JavaScript 才是我最早掌握的一门编程语言,虽然 C 语言是大学生的必修课,但我真不敢说在当时我已经掌握了它,在 Web 2.0 的时代,最流行的开发工具便是网页三剑客,Dreamwaver 的所见即所得让很多初学者也能写出一个可以运行的 Web 应用,我便是其中一个。
在可测试应用架构设计(一)中有介绍过 Booster 是如何解决 Transformer
在本地单元测试环境和编译环境中的复用问题,在本节中,我们来一起探索如何利用 Booster 提供的 TransformerClassLoader
来解决应用架构的可测试性问题。
Booster 又双叒叕发布了新的版本—— v4.2.0,本次更新内容如下:
TransformerClassLoader
实用类在运行时自动发现 Transformer
并进行字节码注入,使 Transformer
能够完全复用自从字节码操作技术在移动端普及之后,各种 app 的架构中都采用了这一技术,最典型的例子便是采用 Service Locator 模式实现的 IoC 框架,这类框架都有着相同的实现思路,挫一点的则是通过反射来实例化对象,好一点的会用 apt 来生成 Factory 代码来解决实例化的问题,但都会存在一个问题,就是需要一个静态的映射(注册表)来解决根据接口查找实现的问题,而这个静态的映射(注册表)一般都是通过字节码操作技术在编译期间自动生成。