01 2025 档案
摘要:在这个“24/7”不间断运行的数字化时代,用户对无缝体验的需求正不断提升。任何系统停机或中断,不仅可能导致企业损失巨额收入,更可能给品牌形象带来不可挽回的伤害。因此,压力测试和混沌工程成为确保系统韧性的核心手段,帮助企业从容应对不可预测的挑战。 本文将从混沌工程的概念出发,解析其实践方法及其在现代系
阅读全文
摘要:在 Go 语言高性能实践中,合理使用栈内存可以显著减少堆分配,从而优化程序性能。通过避免变量逃逸、精简结构体使用、选择高效数据结构,并借助工具分析逃逸情况,可以有效降低垃圾回收压力,提升运行效率。这些优化方法简单而高效,是 Go 开发者不可忽视的关键技巧。 理解 Go 语言中的栈与堆 在 Go 语言
阅读全文
摘要:规则在脚本中定义,脚本由一系列规则定义组成,并与注释行交错。注释可以出现在规则定义的正文中,也可以在规则定义之前或之后,但必须与规则文本分开一行。注释以 # 字符开头: ###################################### # 示例规则集 # # 单个规则定义 RULE ex
阅读全文
摘要:第3章 开发性能测试引擎 经过对Java多线程编程基础和常用的功能的学习,我们已经具备了在性能测试之海自由翱翔的条件。但在出发之前,我们需要一款超级引擎,让我们更快更丝滑拓展航海范围。 本章我们要开发一款基于Java的性能测试引擎,通过性能测试常见测试需求的拆解、设计、编程实现,逐步完成这个目标。
阅读全文
摘要:在高性能、低延迟的消息传递领域,Aeron Queue和Chronicle Queue常被拿来对比。两者都具有出色的能力,但如何在它们之间做出选择可能并不容易。本篇博文将深入比较这两种消息传递解决方案,帮助您为下一项目做出明智的决定。 概述 在开始具体比较之前,让我们先简单了解下这两种队列的特点:
阅读全文
摘要:Byteman 扩展 另一个值得注意的特性是,Byteman 规则的内置操作集并非固定不变。规则引擎通过将规则中使用到的内置操作映射到与之关联的帮助类的公共实例方法来实现这一功能。默认情况下,帮助类为 org.jboss.byteman.rule.helper.Helper,它提供了一系列标准的内置
阅读全文
摘要:2.8 ThreadLocal 在使用Java进行性能测试的过程中,将线程共享的变量通过用例设计优化转换成线程独享,是一种非常高效的解决线程安全问题的思路。java.lang.ThreadLocal可以不必提前确定线程的数量,不必提前分配每个线程所需要的对象,直接全局定义一个java.lang.Th
阅读全文
摘要:2.7 线程安全的集合类 集合类是 Java 编程语言中的一组数据结构,用于存储和操作数据。集合类提供了一种组织和管理数据的方式,可以用于实现各种编程需求。Java 的集合类非常丰富,包括多种不同类型的集合,每种都适用于不同的使用场景。在 Java 基础中学习的几种集合类都不是线程安全的,因此我们需
阅读全文
摘要:简介 Byteman 是一种强大的字节码操作工具,可简化在 Java 应用程序加载或运行时更改其行为的过程,而无需重写或重新编译原始代码。甚至可以用 Byteman 修改 Java 虚拟机的一部分代码,例如 String 或 Thread 等核心类。它基于清晰、简洁且易于使用的事件-条件-动作(EC
阅读全文
摘要:稳定性是持久战 2021年12月的一天,AWS的北弗吉尼亚(us-east-1)区域发生了一次令人震惊的服务中断事故。随着数以亿计的用户在社交媒体、购物平台和视频流服务中陷入“服务无法访问”的漩涡,世界仿佛按下了暂停键。后续报告显示,这起事故的导火索是内部网络设备的过载,而这正是性能瓶颈和未知故障交
阅读全文
摘要:2.6 Phaser Phaser 是上一节提到的更高级的线程同步工具。Phaser 的包路径是 java.util.concurrent.Phaser,属于 Java 多线程编程的核心功能。Phaser 类的主要功能是控制多个线程在特定的同步时间点同步执行。从文字介绍上看,它似乎没有特别之处,但其
阅读全文
摘要:Go,常被称为GoLang,是由 Google 精心打造的一种静态类型、编译型编程语言。它以其简洁的语法、卓越的并发处理能力和高效的性能而著称,因此在后端系统、云原生应用以及微服务架构中得到了广泛应用。Go语言凭借其丰富的标准库,以及 goroutines 和 channels 等独特特性,在开发可
阅读全文
摘要:2.5 CountDownLatch 前两个synchronized和ReentrantLock都是解决线程安全问题的好手,就像两把宝剑,可以披荆斩棘大杀四方。下面我们来探索java.util.concurrent包下面解决线程同步问题的功能类。 在使用多线程进行性能测试的过程中,经常需要基于事件、
阅读全文
摘要:在现代浏览器扩展开发中,如何高效地管理历史记录、优化下载体验,以及构建灵活的数据存储方案,已经成为开发者们关注的焦点。今天,我们将深入探讨 Chrome 提供的 历史浏览记录 API、下载管理 API 和 存储管理 API,并通过一个实用项目带你快速上手这些功能,让你的插件不仅智能,还贴心。 历史浏
阅读全文
摘要:在 Java 以及许多其他编程语言中,对象比较是至关重要的基础操作之一。无论是排序、搜索,还是数据筛选,这一功能始终贯穿于编程的核心流程。在 Java 中,我们既可以通过手动编写逻辑实现对象比较,也可以借助功能强大的第三方库来简化这一过程。本文将为大家详细解析如何使用 Apache Commons
阅读全文
摘要:引言 在 Java 应用的内存管理中,Heap 、No-Heap 和 Off-Heap 是开发者优化性能和资源管理时不可忽视的关键组成部分。它们在 JVM 的运行中扮演着不同的角色,负责存储不同类型的数据结构和对象。随着现代应用程序的复杂性和规模不断提升,合理地分配和管理这三类内存,不仅可以提高系统
阅读全文
摘要:2.4 atomic包原子类 java.util.concurrent.atomic包提供了一组用于实现原子操作的类。这些类可以用于在多线程环境中执行线程安全的、不可中断的原子操作。原子操作类提供了一种稳定可靠的方式执行原子类操作,而不是使用锁实现。原子操作类适用于各种并发场景,特别在是高并发场景种
阅读全文