Category: Performance Benchmark

[转]最全面的 Java G1学习笔记 0

[转]最全面的 Java G1学习笔记

1. 引子 最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题。总体来讲,对于G1我有几个疑惑,希望能够在这篇文章中得到解决。 G1出现的初衷是什么? G1适合在什么场景下使用? G1的trade-off是什么? G1的详细过程? 如何理解G1的gc日志? G1的调优思路? G1和CMS的对比和选择?

[转]JVM FullGC导致线上生产事故 0

[转]JVM FullGC导致线上生产事故

1. 一、业务场景介绍 先简单说说线上生产系统的一个背景,因为仅仅是文章作为案例来讲,所以弱化大量的业务背景。 简单来说,这是一套分布式系统,系统A需要将一个非常核心以及关键的数据通过网络请求,传输给另外一个系统B。 所以这里其实就考虑到了一个问题,如果系统A刚刚将核心数据传递给了系统B,结果系统B莫名其妙宕机了,岂不是会导致数据丢失?

[转]Java内存模型原理 0

[转]Java内存模型原理

这篇文章主要介绍模型产生的问题背景,解决的问题,处理思路,相关实现规则,环环相扣,希望读者看完这篇文章后能对 Java 内存模型体系产生一个相对清晰的理解,知其然知其所以然。

[汇总]Java调优经验 0

[汇总]Java调优经验

Java 性能优化:教你提高代码运行的效率 spring boot 引起的 “堆外内存泄漏” 组内一个项目最近一直报swap区域使用过高异常 没错,老板让我写个 BUG! 主要就是要让一些负载很低的服务器额外消耗一些内存、CPU 等资源(至于背景就不多说了),让它的负载可以提高一些 一次生产 CPU 100% 排查优化实践 你的接口,真的能承受高并发吗? 事务的滥用和锁的粒度 一次 Java 内存泄漏排查过程,涨姿势 Java内存溢出与内存泄漏 你以为JDK8之后用HashMap就没事了?死循环问题依然存在! 让 Spring Boot 启动更快一点 System.currentTimeMillis()竟然存在性能问题 一次简单的 HTTP 调用,为什么时延这么大?抓个包分析下 NullPointerException 的处理新方式,Java14 真的太香了!  ...

Linux性能优化 0

[转]如何学习Linux性能优化?

你是否也曾跟我一样,看了很多书、学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点。但是,面对难题,我们真的就无解了吗? 固然,性能问题的复杂性增加了学习难度,但这并不能成为我们进阶路上的“拦路虎”。在我看来,大多数人对性能问题“投降”,原因可能只有两个。 一个是你没找到有效的方法学原理,一听到“系统”、“底层”这些词就发怵,觉得东西太难自己一定学不会,自然也就无法深入学下去,从而不能建立起性能的全局观。

[转]亿级PV,常见性能优化策略总结与真实案例 0

[转]亿级PV,常见性能优化策略总结与真实案例

1. 0 题记 美团网是国内最大的O2O服务平台,虽然经常面临高并发、大流量等问题,但在用户体验优化上美团APP仍被众多IT同行所推崇,他们在性能优化方面积累的宝贵经验尤其值得我们学习。通过本文的分享,作者晓明力求达到如下效果: 1. 形成可实践、可借鉴、可参考的各种性能优化的方案以及选型考虑点,同时配合具体的真实案例,其他人遇到相似问题时,不用从零开始。 2. 有助于开阔视野,除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。

[转]jvm堆内存溢出后,其他线程是否可继续工作 0

[转]jvm堆内存溢出后,其他线程是否可继续工作

背景 最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。 由于题目中给出的OOM,java中OOM又分很多类型;比如:堆溢出(“java.lang.OutOfMemoryError: Java heap space”)、永久带溢出(“java.lang.OutOfMemoryError:Permgen space”)、不能创建线程(“java.lang.OutOfMemoryError:Unable to create new native thread”)等很多种情况。 本文主要是分析堆溢出对应用带来的影响。

[转]Linux性能监控和调试 0

[转]Linux性能监控和调试

1. 0 题记 对于每个互联网研发人员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作。 为此,我们总结了非常有用的并且最常用的20个命令行系统监视工具。这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因。这些监控命令足够你选择适合你的监控场景。