JVM 调优
社区首页
2282 



最新发布
最新回复
标题
阅读量
内容评分
精选
显示侧栏
切换为经典版
3
评分
回复

JVM 调优
题记-------JVM 调优分类及思路:调优是一个很大的概念,简单说就是把系统进行优化,但是站在一个系统的角度,能够干的事情太多了,一般调优的思路可以是“测试 - 分析 - 调优”三步走。任何调优一般都需要结合场景,明确已知问题和性能目标,比如这个服务就注重吞吐量,这个服务注重用户的体验(用户的响应时间)等等。不能为了调优而调优,引入不必要的问题。常见的我们一般把 JVM 调优分成以下三类:JVM 预调优优化 JVM 运行环境(慢、卡顿等)解决 JVM 中的问题(OOM 等)常见的jvm优
复制链接 扫一扫
分享
2
评分
回复

程序员必知必会 QPS TPS、URI URL、PV UV GMV
QPS:Queries Per Second,意思是“每秒查询数”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。即最大吞吐能力。TPS:TransactionsPerSecond,意思是“每秒处理事务数”,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
复制链接 扫一扫
分享
3
评分
回复

个人理解ToB和ToC业务的不同点
这个维度和“专业性”会有一定的交叉,专业度主要指面向“客户”,此处更侧重企业自身,简单描述的话可以说是企业自身的内外部影响力。关于信任,是一个很大的话题,“名可名、非常名”。
复制链接 扫一扫
分享
3
评分
回复

spring源码系列二-refresh()
跟完一遍源码大概了解了Spring的容器中Bean生命周期简单概括如下:对象创建:1、解析xml读取配置的Bean,【@Bean注解,或者Java代码BeanDefinitionBuilder中读取Bean的定义】2、java 反射机制实例化Bean对象;3、设置Bean的属性;4、注入Bean实现了的Aware的依赖(BeanNameAware,BeanClassLoaderAware,BeanFactoryAware,ApplicationContextAware等);
复制链接 扫一扫
分享
2
评分
回复

es分页解决方案--深分页、浅分页
一、ES 的 from size(浅分页):如果需要搜索分页,可以通过from size组合来进行。from表示从第几行开始,size表示查询多少条文档。from默认为0,size默认为10。1、原理:客户端请求发给某个节点节点转发给个个分片,查询每个分片上的前10条结果返回给节点,整合数据,提取前10条返回给请求客户端2、分析例如现有一个索引T,该索引接收到了一个查询请求,查询第3页,页大小100(也就是想要排序后第三页的100条数据),即设置了 from = 300, size =
复制链接 扫一扫
分享
2
评分
回复

分布式锁三种实现方式
db操作性能较差,并且有锁表的风险非阻塞操作失败后,需要轮询,占用cpu资源;主从切换的情况下可能出现多客户端获取锁的情况;Lua脚本在单机上具有原子性,主从同步时不具有原子性需要引入Zookeeper集群,比较重量级;具备高可用、可重入、阻塞锁特性,可解决失效死锁问题。因为需要频繁的创建和删除节点,性能上不如Redis方式。如果你的实际业务场景,更需要的是保证数据一致性。那么请使用CP类型的分布式锁,比如:zookeeper如果你的实际业务场景,更需要的是保证数据高可用性。
复制链接 扫一扫
分享
2
评分
回复

git、gitlab(token、ssh)安装配置及常规操作、git常用命令
一、下载安装1.1安装(本地客户端和服务端两个)官网下载(以windows为例)https://gitforwindows.org/https://git-scm.com/download/win下载好,一路next走默认配置安装即可。1.2确认安装:桌面右键以及cmd输入git -version确认安装成功。二、配置客户端2.1配置客户端2.2确认客户端配置是否正确随便选个文件,空白处右键不用勾选直接ok,创建.git版本控制文件夹。接下来随便选个文件,点击右
复制链接 扫一扫
分享
2
评分
回复

Jdk命令行工具(jps、jstat、jinfo、jmap、jstack)-------GC 调优基础篇
GC 调优基础知识之JDK 为我们提供的工具:一、jpsjps是JDK 1.5提供的一个显示当前所有虚拟机进程pid的命令:-q :仅仅显示进程,-m:输出主函数传入的参数. 下的 hello 就是在执行程序时从命令行输入的参数-l: 输出应用程序主类完整 package 名称或 jar 完整名称.-v: 列出 jvm 参数, -Xms20m -Xmx50m 是启动程序指定的 jvm 参数二、jstat1、jstat是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚
复制链接 扫一扫
分享
2
评分
回复

java中常见的零散知识点
一、wait()、notify释放锁问题wait()会立刻释放synchronized(obj)中的obj锁,以便其他线程可以执行obj.notify()但是notify()不会立刻立刻释放sycronized(obj)中的obj锁,必须要等notify()所在线程执行完synchronized(obj)块中的所有代码才会释放这把锁.yield(),sleep()不会释放锁。二、什么是java的局部变量、成员变量和全局变量?1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局
复制链接 扫一扫
分享
2
评分
回复

数据结构-图的理解(以及图的存储与遍历)
1、图的基本概念树中的元素我们称为节点,图中的元素我们就叫做顶点。一个图就是一些顶点的集合,顶点有时也称为节点或者交点,这些顶点通过一系列边连接,跟顶点相连接的边的条数叫做度。引入边的“方向”,就是有向图,在有向图中,我们把度分为入度(In-degree)和出度(Out-degree)。例顶点2的入度为2,出度为2。每条边都有一个权重(weight)的图就是带权图。而这种带权的图被称为网。此图为非连通图,若顶点0和1有边连接,则为连通图。树和链表也属于图。常见的我们的qq,微博互关,微信好友等都是图的应
复制链接 扫一扫
分享
2
评分
回复

常用的线性数据结构比较---------数组、链表、栈、队列、(递归)
前言线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。而与它相对立的概念是非线性表,比如二叉树、堆、图等。一、数组数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。数组可以根据下标随机访问,计算机根据寻址公式可以快速查找下标为i的元素:a[i]_address = base_address + i() * data_type_size即下标为i的元素地址=数组首地址+下标 i
复制链接 扫一扫
分享
2
评分
回复

数据结构--------堆(Heap)的理解
1、堆(Heap)是一种特殊的树堆是一个完全二叉树(除了最后一层,其他层的节点个数都是满的,最后一层的节点都靠左排列);堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。对于每个节点的值都大于等于子树中每个节点值的堆,我们叫做“大顶堆”。对于每个节点的值都小于等于子树中每个节点值的堆,我们叫做“小顶堆”。2、堆的存储完全二叉树适合用数组存储,所以堆也适合用数组存储。因此可得,数组下标是 i 的元素,它的父节点以及左右子节点的位置分别是:parent(i) = flo
复制链接 扫一扫
分享
2
评分
回复

二分查找、跳表、散列表、哈希函数
一、二分查找二分查找(Binary Search)算法,也叫折半查找算法。O(logn) 非常高效的查找算法。在不存在重复元素的有序数组中,查找值等于给定值的元素。eg: public int bsearch(int[] a, int n, int value) {int low = 0;int high = n - 1;while (low <= high) {int mid = (low + high) / 2;if (a[mid] == value) {return mid;
复制链接 扫一扫
分享
2
评分
回复

创建maven项目及Cannot change version of project facet Dynamic Web Module to 3.1问题解决
???? 一:创建简单的maven项目项目背景:用eclipse搭建一个简单的maven+SSH(jdk 1.8)项目。1、新建一个maven project。2、选择工作空间和跳过原型选择:3、填写项目信息。4、添加web.xml项目结构就出现了,但是pom.xml会报错,是缺少web.xml导致,可以找个工程将WEB-INF下内容拷贝过来(或者自己创建也可以)。5、添加项目依赖直接百度搜索maven+ssh pom.xml 将配置文件的内容拷贝进来,这时候基本项目所需
复制链接 扫一扫
分享
2
评分
回复

maven入门(简介+安装+目录结构+maven常用命令+scope+依赖冲突解决)
一、maven是什么?Maven就是项目管理工具,用来构建项目的。也就是清理、编译、测试、运行、打包、安装整个过程都交给maven管理,整个过程就是构建。二、下载、安装及配置1、官网下载官网下载:http://maven.apache.org/download.cgi然后解压(gz包或者zip包)到最好没有中文没有空格的路径。目录结构如下:2、配置环境变量Maven 本身就是基于Java 写的,所以在安装配置 Maven 之前,有必要将 Java 的运行环境安装配置好,jdk安装好。Win
复制链接 扫一扫
分享
2
评分
回复

jvm垃圾回收算法及垃圾收集器
一、如何确定是垃圾?1、引用计数法对象如果没有与之关联的引用,计数器为0的对象,就是可回收的对象。(目前python就使用)优点:判定效率高,实现简单。缺点:不完全准确,无法回收循环引用的对象,容易内存泄漏。2、可达性分析(根可达)通过一系列GC Roots的对象作为起始点,从这些根节点开始向下搜,搜索所有走过的路叫做引用连,当一个对象到GC Roots没有任何的引用链相连时,则说明此对象不可用。优点:解决相互循环引用问题。注:不可达对象不等价于可回收对象,不可达对象变为可回收对象至少要经
复制链接 扫一扫
分享
2
评分
回复

Thread源码分析-手写线程
start0(),被Native关键字声明的方法说明该方法不是以Java语言实现的,而是以本地语言实现的(eg:C++/C)。小结:1、start()开始创建一个实质线程(不是指线程对象,而是OS中的线程),所以Java的线程和操作系统线程是一一对应的。3)java的Thread是调用start(),假设我们手写的将来是调用start1()让它开启一个线程(名字随意起);(Windows环境下,所以用的是一 个.dll文件,如果在Linux环境下的话,用的是一个.so文件)2)包含一个native的方法;
复制链接 扫一扫
分享
2
评分
回复

保护性暂停模式之Thread.join()、Future
一、概念保护性暂停模式(Guarded Suspension Design Pattern):当线程在访问某个对象时,发现条件不满足时,就暂时挂起等待条件满足时再次访问。如果某个结果需要在多线程之间传递,则可以让这些线程关联到一个对象GuardedObject,但是如果这个结果需要不断的从一个线程到另一个线程那么可以使用消息队列(生产者/消费者)Thread.join()、Future就采用了保护性暂停模式。二、保护性暂停模式的实现@Slf4jpublic class Test { /
复制链接 扫一扫
分享
2
评分
回复

java的IO、NIO、BIO-----------------那些关于流的事
一、java 中 IO 流分为几种????? 按功能来分:输入流(input)、输出流(output)。???? 按类型来分:字节流和字符流。???? 字节流和字符流区别:字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。字节流默认不使用缓冲区;字符流使用缓冲区。字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。二、java IO包下面有哪些常见类文件类
复制链接 扫一扫
分享
2
评分
回复

AtomicStampedReference解决CAS机制中ABA问题
一、CASCAS:Compare and Swap,比较并交换。java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。二、CAS缺点:1. ABA问题:就是说一个线程把数据A变为了B,然后又重新变成了A。此时另外一个线程读取的时候,发现A没有变化,就误以为是原来的那个A。导致可能存在潜藏的问题。这就是有名的ABA
复制链接 扫一扫
分享
为您搜索到以下结果:
发帖

HelloWorld社区


HelloWorld社区
Java 爱好者社区,大厂面经、架构学习、那些天马星空的东西来一起探索吧,保持对技术的热爱,一起奔赴山海,欢迎加入!!!
复制链接 扫一扫
6
社区成员
59
社区内容
Java 爱好者社区,大厂面经、架构学习、那些天马星空的东西来一起探索吧,保持对技术的热爱,一起奔赴山海,欢迎加入!!!
spring cloudjava数据结构 个人社区 北京·朝阳区
加入社区
获取链接或二维码
社区公告
暂无公告