欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

 分类:开发语言

java服务性能优化

java服务性能优化
Java 是一种高级编程语言,广泛应用于开发各种类型的应用程序,包括服务端应用。然而,随着应用程序规模和负载的增加,Java 服务性能可能会受到影响。本文将介绍如何进行 Java 服务性能优化,以提高应用程序的响应速度和吞吐量。 分析服务性能问题 在开始进行性能优化...

water 2年前 (2023-02-17) 1097℃ 0评论 2喜欢

java 中的锁 — 偏向锁、轻量级锁、自旋锁、重量级锁

java 中的锁 — 偏向锁、轻量级锁、自旋锁、重量级锁
之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对);AtomicInteger效率最不稳定,不同并发情况下...

water 2年前 (2023-02-07) 1455℃ 0评论 1喜欢

GC日志逐行分析+关键性能优化参数分析

GC日志逐行分析+关键性能优化参数分析
前言 最近遇到几个系统 young gc 时间比较长,在 young gc 长的同时,系统负载也随时升高,因此熟读GC日志以及了解一些Jvm常见调优是必要的。 收获 看完应该有如下收获 熟悉young GC日志每一行啥意思(会看)。了解一些关键GC调优参...

water 2年前 (2023-02-07) 1550℃ 0评论 0喜欢

JVM参数总结

JVM参数总结
性能调优: -XX:-OmitStackTraceInFastThrow 去掉优化多次抛异常 -XX:-UseBiasedLocking 去掉偏向锁(锁竞争激烈的场景下加上) -XX:-UseCounterDecay 禁止JIT调用计数器衰减(默认情况下,每次...

water 2年前 (2023-02-07) 1141℃ 0评论 0喜欢

背压(Back Pressure)与流量控制

背压(Back Pressure)与流量控制
春节期间,高速上动不动就堵车,这是一种“背压”的现象。背压(back pressure),也叫“反压”,指的是下游系统处理过慢,导致上游系统阻塞的现象。我们来聊聊背压后面的流控吧。 流控策略 如上图,系统中存在三方:生产者(Producer)产生数据,通过管道(Pi...

water 2年前 (2022-09-05) 1899℃ 0评论 1喜欢

垃圾优先型垃圾回收器调优

垃圾优先型垃圾回收器调优
垃圾优先型垃圾回收器 (G1 GC) 是适用于 Java HotSpot VM 的低暂停、服务器风格的分代式垃圾回收器。G1 GC 使用并发和并行阶段实现其目标暂停时间,并保持良好的吞吐量。当 G1 GC 确定有必要进行垃圾回收时,它会先收集存活数据最少的区域(垃圾优...

water 2年前 (2022-07-13) 981℃ 0评论 0喜欢

HttpClient高并发下性能优化-http连接池

HttpClient高并发下性能优化-http连接池
首先,明确两点: 1.http连接池不是万能的,过多的长连接会占用服务器资源,导致其他服务受阻2.http连接池只适用于请求是经常访问同一主机(或同一个接口)的情况下3.并发数不高的情况下资源利用率低下 那么,当你的业务符合上面3点,那么你可以考虑使用http连接池...

water 3年前 (2022-03-24) 2410℃ 0评论 5喜欢

微服务网关Zuul、Gateway、nginx的区别

微服务网关Zuul、Gateway、nginx的区别
对比Spring Cloud Netflix Zuul和Spring Cloud Gateway 前面整理了两者的特点,现在对比来分析,得出以下结论: 两者均是web网关,处理的是http请求gateway对比zuul多依赖了spring-webflux,在spri...

water 3年前 (2022-03-23) 2243℃ 0评论 2喜欢

关于Spring Boot 应用监控几种方案

关于Spring Boot 应用监控几种方案
概述 为什么要对Spring Boot应用进行监控,那是因为一个应用的功能需要同时满足两方面的功能,一个满足业务需求功能,另一个就是非业务功能需求如监控,监控包括很多方面,应用的健康监控,性能指标监控,我上周主要的事情就是玩一遍Springboot的应用的监控,现在就是简...

water 3年前 (2022-03-23) 2073℃ 0评论 4喜欢

Spring Cache监控配置与使用规范建议

Spring Cache监控配置与使用规范建议
建议 程序中使用的缓存,请在cache-names里指明,如此,可以通过配置文件来明白程序中用到了哪些spring cache。请尽量对每一个cache分别设置缓存策略,因为不用的cache其使用的场景与缓存对象大小都不一样。分别设置缓存请使用common-spring-...

water 3年前 (2022-03-23) 1502℃ 0评论 0喜欢

GC concurrent-mark-reset-for-overflow

GC concurrent-mark-reset-for-overflow
欢迎来到 JVM 参数MarkStackSize的讨论专区 参数名称 MarkStackSize 取值类型 unsigned int 参数说明 Size of marking stack 用法及建议 使用该参数的正确姿势是-XX:...

water 3年前 (2022-03-23) 1368℃ 0评论 0喜欢

定位及修复apache skywalking性能问题

定位及修复apache skywalking性能问题
起因:在某个Java新项目希望引入好用的apm监控工具,对比了几款常见的框架后,选择了集成成本比较低的skywalking。 但是在压测的时候发生了很神奇的事情。应用会无缘无故卡顿导致压测效果不理想,排查了一遍代码认为不太可能是代码上使用锁导致。 排查:1、JVM ...

water 3年前 (2022-03-23) 2645℃ 0评论 5喜欢

G1 to-space exhausted 的问题

G1 to-space exhausted 的问题
问题背景 应用使用G1 GC,在某一时刻后,开始出现频繁的full gc 排查 通过gc 日志获取一些线索 存在大量大对象分配,大部分触发GC的原因为大对象分配,相关日志片段:[GC pause (G1 Humongous Allocation) ...

water 3年前 (2022-03-23) 2271℃ 0评论 6喜欢

大对象在G1中会直接被分配到老年代么?

大对象在G1中会直接被分配到老年代么?
什么才算是大对象? 在G1中,一个对象的大小超过了一个Region大小的50%,就是大对象。 大对象怎么分配? 大对象在G1中不会直接被分配到老年代,或者说大对象就根本不会进入老年代。G1是将堆内存分为一块块的Region,这些Region有时属于老年代有时属...

water 3年前 (2022-03-23) 1383℃ 0评论 0喜欢

MapDB使用入门

MapDB使用入门
背景 MapDB官网:http://www.mapdb.org 官方翻译之后的话:MapDB基于堆外存储、磁盘存储提供了Java的Maps、Sets、Lists、Queues等功能。它混合了Java集合框架和数据库引擎。它是基于Apache许可的免费的、开源的。 ...

water 3年前 (2022-03-23) 1294℃ 0评论 1喜欢

Google 官方文章-如何去做code review

Google 官方文章-如何去做code review
Google 前几天公开了一篇谷歌的工程实践文档。而且文档的内容都是跟 code review 相关的内容,里面包含了 Google 工程师如何进行 code review 的内容,以及 code review 指南。 原文地址: google.github.io/eng-pr...

water 3年前 (2022-03-23) 938℃ 0评论 0喜欢

几种Java常用序列化框架的选型与对比

几种Java常用序列化框架的选型与对比
一 背景介绍 序列化与反序列化是我们日常数据持久化和网络传输中经常使用的技术,但是目前各种序列化框架让人眼花缭乱,不清楚什么场景到底采用哪种序列化框架。本文会将业界开源的序列化框架进行对比测试,分别从通用性、易用性、可扩展性、性能和数据类型与Java语法支持五方面给出对比...

water 3年前 (2022-03-23) 1077℃ 0评论 1喜欢

深入浅出序列化—Kryo序列化

深入浅出序列化—Kryo序列化
前一篇文章我们介绍了 Java 中的两个常见的序列化方式,JDK 序列化和 Hessian2 序列化,本文我们接着来讲述一个后起之秀——Kryo 序列化,它号称 Java 中最快的序列化框架。那么话不多说,就让我们来看看这个后起之秀到底有什么能耐吧。 Kryo 序列化 ...

water 3年前 (2022-03-23) 1017℃ 0评论 0喜欢