日常开发中使用Map时经常会遇到很多复杂的处理场景,例如:多个键的Map、不仅可以根据键获取值也可以根据值获取键且不用遍历、重复键的Map、数字等范围内映射相同的值、内存中缓存对象等,Guava提供了以上场景的解决方案。
作为Java开发者,我们常关注代码逻辑和功能实现,但高并发下的性能瓶颈才是线上系统的“隐形杀手”。JMeter作为Apache开源压测工具,能模拟海量用户请求,帮助我们发现:
接口响应时间延迟
数据库连接池耗尽
线程阻塞、内存泄漏
微服务链路雪崩效应
通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。
开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。
如果您正在考虑在代码中添加一些日志以帮助解决问题,您将必须经历以下阶段:测试、预发,然后生产。这种方法效率低下,更糟糕的是,该问题可能无法解决,因为一旦 JVM 重新启动,它可能无法复现,如上文所述。
Arthas 旨在解决这些问题。开发人员可以在线解决生产问题。无需 JVM 重启,无需代码更改。 Arthas 作为观察者永远不会暂停正在运行的线程。
对于 SkyWalking 、Zipkin、Arthas 来说都是无侵入式的组件,你是否有思考过其底层是如何实现?今天让我们了解下 动态追踪技术的底层分析
在各种各样的并发工具类中,如何确定我们代码的并发性能呢?这个时候就需要来聊下 Java 中提供的微基准测试工具 JMH, 它主要是基于方法层面的基准测试,精度可以达到纳秒级。JMH由Oracle内部实现JIT的大牛们编写,他们比任何人都了解JIT以及JVM对于基准测试的影响