首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
奥兰治的威廉
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
57
文章 12
沸点 45
赞
57
返回
|
搜索文章
最新
热门
Java性能调优(十五)数据库调优(2)
之前我参与过一个项目,在项目初期,我们是没有将读写表分离的,而是基于一个主库完成读写操作。在业务量逐渐增大的时候,我们偶尔会收到系统的异常报警信息,DBA 通知我们数据库出现了死锁异常。 按理说业务开始是比较简单的,就是新增订单、修改订单、查询订单等操作,那为什么会出现死锁呢?…
Java性能调优(十四)数据库调优(1)
1. 无索引、索引失效导致慢查询 如果在一张几千万数据的表中以一个没有索引的列作为查询条件,大部分情况下查询会非常耗时,这种查询毫无疑问是一个慢 SQL 查询。所以对于大数据量的查询,我们需要建立适合的索引来优化查询。 虽然我们很多时候建立了索引,但在一些特定的场景下,索引还有…
Java性能调优(十三)设计模式调优(2)
使用 Object 的 wait/notify/notifyAll 实现生产者消费者模式,这种方式是基于 Object 的 wait/notify/notifyAll 与对象监视器(Monitor)实现线程间的等待和通知。 Monitor 的工作原理,借此我们可以得知,这种方式…
Java性能调优(十二)设计模式调优(1)
它的核心在于,单例模式可以保证一个类仅创建一个实例,并提供一个访问它的全局访问点。 该模式有三个基本要点:一是这个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。 我们可以发现,以上第一种实现单例的代码中,使用了 static 修饰了成员变量…
Java性能调优(十一)JVM调优(2)
掌握 GC 算法之前,我们需要先弄清楚 3 个问题。第一,回收发生在哪里?第二,对象在什么时候可以被回收?第三,如何回收这些对象? 1. 回收发生在哪里? JVM 的内存区域中,程序计数器、虚拟机栈和本地方法栈这 3 个区域是线程私有的,随着线程的创建而创建,销毁而销毁;栈中的…
Java性能调优(十)JVM调优(1)
首先你应该知道,运行一个 Java 应用程序,我们必须要先安装 JDK 或者 JRE 包。这是因为 Java 应用在编译后会变成字节码,然后通过字节码运行在 JVM 中,而 JVM 是 JRE 的核心组成部分。 JVM 不仅承担了 Java 字节码的分析(JIT compile…
Java性能调优(九)多线程性能调优(4)
1. Linux 命令行工具之 vmstat 命令 vmstat 是一款指定采样周期和次数的功能性监测工具,我们可以使用它监控进程上下文切换的情况。 vmstat 1 3 命令行代表每秒收集一次性能指标,总共获取 3 次。以下为上图中各个性能指标的注释: 2. Linux 命令…
Java性能调优(八)多线程性能调优(3)
在 HotSpot VM 的线程模型中,Java 线程被一对一映射为内核线程。Java 在使用线程执行程序时,需要创建一个内核线程;当该 Java 线程被终止时,这个内核线程也会被回收。因此 Java 线程的创建与销毁将会消耗一定的计算机资源,从而增加系统的性能开销。 除此之外…
Java性能调优(七)多线程性能调优(2)
在并发程序中,并不是启动更多的线程就能让程序最大限度地并发执行。线程数量设置太小,会导致程序不能充分地利用系统资源;线程数量设置太大,又可能带来资源的过度竞争,导致上下文切换带来额外的系统开销。 我们首先得明白,上下文切换到底是什么。 其实在单个处理器的时期,操作系统就能处理多…
Java性能调优(六)多线程性能调优(1)
Lock 同步锁是基于 Java 实现的,而 Synchronized 是基于底层操作系统的 Mutex Lock 实现的,每次获取和释放锁操作都会带来用户态和内核态的切换,从而增加系统性能开销。 了解 Synchronized 同步锁优化之前,我们先来看看它的底层实现原理,这…
下一页
个人成就
文章被点赞
53
文章被阅读
55,755
掘力值
1,331
关注了
15
关注者
80
收藏集
8
关注标签
12
加入于
2019-07-27