发布

FunTester

Fun·BUG挖掘机·性能征服者·头顶锅盖·Tester
专栏成员
1005
文章
848892
阅读量
47
订阅数
Go 语言优雅退出:让程序体面“退休”
在 Go 语言开发中,如何让程序优雅地退出是个绕不开的话题。无论是 Web 服务器、后台任务,还是微服务架构,程序总有终止的时候。如果不做好资源清理,可能会带来数据丢失、任务中断等一系列问题。今天,我们就来聊聊 Go 语言中的优雅退出,看看如何让你的程序从容退场,而不是“摔门而去”。
FunTester
2025-03-04
30
Go 语言常见错误——数据类型
在 Go 语言的开发中,常见的错误往往隐藏在细节之中,稍不注意就会引发严重的逻辑问题或性能瓶颈。正所谓千里之堤毁于蚁穴,这些看似不起眼的小问题,可能会让整个项目功亏一篑。本文涵盖了八进制字面量的误解、整数溢出的忽视、浮点数比较的陷阱、slice 和 map 的误用,以及内存泄漏和值比较的问题。通过实际的代码示例和详细解析,我们揭示了这些错误的潜在影响,并提供了最佳实践解决方案。
FunTester
2025-03-03
250
故障扩散与阻断——系统防御术
太多的线上事故,很多看似无关紧要的小问题,最后却像滚雪球一样,越滚越大,最终演变成牵一发而动全身的灾难。在分布式系统里,服务之间的关系就像一张精密编织的蜘蛛网,任何一个节点出问题,都可能引发连锁反应,甚至拖垮整个系统。今天,咱们就来聊聊那些常见的故障模式,以及如何未雨绸缪,避免掉进这些坑里。
FunTester
2025-03-03
440
【连载 19】Rump-Up 功能
在性能测试中,Rump-Up功能是一个非常重要的特性,它允许测试人员逐步增加系统负载,从而观察系统在不同压力下的表现。通过逐步增加负载,测试人员可以更准确地识别系统的性能瓶颈、容量限制以及潜在的缺陷。以下是对Rump-Up功能的详细解释和实现步骤的总结:
FunTester
2025-03-03
130
Go 语言常见错误——代码及工程组织
在 Go 语言的开发旅程中,无论是初学者还是经验丰富的开发者,都难免会遇到一些常见的陷阱和错误。这些错误看似微不足道,却可能在不经意间引发严重的逻辑问题、性能瓶颈,甚至导致代码难以维护和扩展。为了帮助大家更好地掌握 Go 语言的精髓,避免在开发过程中踩坑,本文将通过实际的代码示例、错误解析、潜在影响以及最佳实践,为大家提供清晰的解决方案。
FunTester
2025-02-28
880
关注专栏作者,随时接收最新技术干货
FunTester
隐藏技能 | 性能测试
用户6343696
大连东软 | 实习生
Lume:轻量级虚拟机管理工具
在 Apple Silicon 设备上运行虚拟机(VM)是开发者和系统管理员的常见需求。尽管 macOS 提供了官方的 Virtualization.framework,但用户通常需要借助 UTM、Multipass 或 Docker 等工具来管理虚拟机。Lume 作为一个轻量级的命令行工具(CLI)和本地 API 服务器,提供了一种简单高效的方式来创建、运行和管理 macOS 与 Linux 虚拟机。本文将深入解析 Lume,探讨其核心功能、架构设计、安装方式以及实际使用场景。
FunTester
2025-02-27
760
2025 年软件测试趋势:你准备好了吗?
随着软件开发模式的不断变化,软件测试行业也在经历着一场深刻的变革。曾几何时,手工测试一度占据主导地位,但如今,自动化测试已经成为标准,而 AI 驱动的智能测试正迅速崛起。测试工程师的角色与技能要求也在不断提升,从单纯的找 Bug 到如今的质量保障全链条参与。到了 2025 年,软件质量的保障不仅仅依赖传统的测试人员,更需要与开发、运维、安全团队的深度协作,形成 DevOps、DevSecOps 以及智能化测试的新生态。
FunTester
2025-02-26
1060
从零上手 Fabric8 KubernetesClient
在 Kubernetes 的世界里,管理容器资源的方法可谓是八仙过海,各显神通。最直接的方式当然是使用 kubectl 命令,但如果想在 Java 代码里优雅地操作 Kubernetes,那就得借助 Kubernetes Java 客户端了。虽然官方提供了 kubernetes-client-java,但相比之下,Fabric8 KubernetesClient 更加简洁、强大,API 设计友好,特别适合 Java 开发者。
FunTester
2025-02-24
860
【连载 18】测试数据处理
在我们设计的性能测试引擎中,测试数据的处理主要两个方面:一是多线程任务类中数据处理;二是多线程执行类的数据处理。
FunTester
2025-02-24
730
SSE:轻量级实时数据推送神器
在现代Web开发中,实时数据推送已经成为许多应用的核心需求。无论是股票行情、社交媒体通知,还是在线协作编辑,用户都希望能够即时获取最新的信息。在这种背景下,服务器发送事件(Server-Sent Events,SSE)作为一种轻量级的实时通信技术,提供了一种简单而高效的解决方案。
FunTester
2025-02-24
1410
高性能Java类路径扫描神器:FastClasspathScanner
在大型Java应用程序中,类路径扫描是一项非常基础的操作,尤其是那些依赖反射机制的框架或工具,比如依赖注入(DI)或插件加载。不过,传统的类路径扫描技术往往速度慢、效率低,特别是在代码库庞大、类层次结构复杂的应用中。这时候,FastClasspathScanner就派上用场了——它是一个专门为大幅提升Java类路径扫描性能而设计的库。 FastClasspathScanner简介
FunTester
2025-02-21
440
【连载 17】多线程执行类
对于线程执行类来讲,最重要的两个功能就是执行测试任务和处理测试数据。其中执行测试任务涉及控制线程执行逻辑,稍显复杂,这里我们先将测试方案简化为执行 N 个并发,每个线程间隔 1 秒启动。如此一来,我们需要将已经创建好的 ThreadTask 类对象间隔提交给线程池执行即可。线程池的选择已经在上一节讲过,由于测试方案中并发数固定,我们只创建与之对应数量的线程池即可。
FunTester
2025-02-20
890
Go 语言互斥锁
在并发编程中,互斥锁(Mutex,全称 Mutual Exclusion)是一个重要的同步原语,用于确保多个线程或进程在访问共享资源时不会发生竞态条件。竞态条件是指在多个线程同时访问或修改共享数据时,由于操作顺序的不确定性,导致数据不一致或者程序行为不可预测的问题。
FunTester
2025-02-19
670
AgentRunner:高性能任务调度器
在高性能并发编程中,如何高效管理线程、减少上下文切换以及提升任务执行效率是开发者必须面对的挑战。Java 的标准并发库如 ExecutorService 虽然功能强大,但在一些 高吞吐、低延迟 场景下,其线程管理开销可能较大。为了解决这个问题,Agrona 提供了 org.agrona.concurrent.AgentRunner,一个轻量级的线程管理工具。
FunTester
2025-02-19
1060
【连载 16】多线程任务类
在线程模型中,首先创建固定数量的多线程任务,其次是把任务提交给线程池执行。因此,线程模型测试框架的核心之一就是多线程类。多线程类除了要执行测试任务以外,还需要收集、处理测试中的数据。
FunTester
2025-02-19
680
线上故障与故障测试
在如今这个高度数字化的时代,互联网服务早已融入了人们的日常生活和商业运作之中。无论是在线购物、移动支付,还是社交媒体和云端办公,都依赖于稳定的线上系统。然而,随着系统规模的不断扩大和复杂度的提升,线上故障的发生频率也随之增加。一个看似微不足道的故障,可能会导致系统崩溃、用户数据丢失,甚至带来严重的经济损失,对企业品牌信誉造成长期影响。
FunTester
2025-02-19
900
Byteman 使用指南(十二)
安装目录下的 bin 包含一个名为 bmjava 的脚本,可用于组合 Byteman 代理选项,并将其与 Java 命令行中的其他选项整合。命令行语法如下:
FunTester
2025-02-19
350
Byteman 使用指南(十一)
如果通过 Java 命令行或 Ant 使用 Byteman,需先下载并安装 Byteman。最新的 Byteman 版本可作为 zip 文件从 Byteman 项目下载页面获取。
FunTester
2025-02-19
560
Byteman 使用指南(十)
规则引擎提供了一个简单的内置 debug 方法,用于在规则执行期间有条件地显示消息。帮助器类定义的 API 如下:
FunTester
2025-02-19
330
Byteman 使用指南(九)
规则引擎提供了 LinkMaps,用于在规则触发时记录信息,供其他规则或测试运行结束时检索。链接映射本质上是一个命名的 Map,它将一个 Object 与另一个 Object 关联。帮助器类定义的 API 如下:
FunTester
2025-02-19
140
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档