JVM学习笔记

MIPS-5级流水线CPU 一、流水线CPU 流水线CPU就是指将一条分解为多步,在同一周期内进行多条指令的同时执行。MIPS五级流水线就是将指令分为:取指(IF),译码(ID),执行(EX),访存(MEM),写回(WB)五个阶段。举个例子: 比如第二条指令lui $t2,0x2100 在流水线CPU中执行的就是 可以看到在200-300ns的周期里,IF阶段取到0x00400004处的指令,300-400ns,这条指令到了ID阶段,而IF阶段执行下一条指令。400-500ns,执行这条指令,ALU的结果为0x2100 阅读详情

JVM调优

Trace 跟踪参数

打印简要GC

verbose:gc
-XX:+printGC
打印详细GC

-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps 打印GC发生的时间
重定向GC.log

Xloggc:log/gc.log – 默认以当前目录为基础
每次GC后,都打印堆信息

-XX:+PrintHeapAtGC
监控类的加载

-XX:+TraceClassLoading
打印类的使用情况

-XX:+PrintClassHistogram
注: 需要在控制台下按下Ctrl+Break后才可以打印类的信息

堆的分配参数

-Xmx:指定最大堆空间 -Xms:指定最小堆空间
思考:

-Xmx和-Xms应该保持一个什么关系,可以让系统的性能尽可能的好呢?
如果你要做一个Java的桌面产品,需要绑定JRE,但是JRE又很大,你如何做一下JRE的瘦身呢?
设置新生代大小

-Xmn: 固定值
-XX:NewRatio: 按比例算(新生代[eden+2*s]和老年代[不包括永久区]). eg: 4, 1:4, 占整个堆的20%
-XX:SurvivorRatio: 设置两个Survivor区和eden的比. eg: 8, Survivor:eden=2:8, 即一个Survivor占年轻代的10%
-XX:+HeapDumpOnOutOfMemoryError: OOM时导出堆到文件
-XX:+HeapDumpPath: 导出文件位置
-XX:OnOutOfMemoryError: 在OOM时,执行一个脚本
永久区分配参数

-XX:PermSize -XX:MaxPermSize
注: 堆没有用完的情况也有可以抛出OOM,因为永久区造成的,具体查看GC明细

栈大小分配
–Xss: 每个线程的本大小,分配的大小与容易的线程数成反比。
GC的算法与种类

概念: 垃圾收集, 1960年List使用了GC, JAVA中 GC的对象是堆空间和永久区

算法:

引用计数法 通过引用计算来回收垃圾 引用和去引用伴随的加法和减法,影响性能很难处理循环引用

标记清除法 现代垃圾回收算法的基础

标记压缩 适合用于对象较多的场合

复制算法 相对于标记法效率更高 不适合用于对象较多的情况, 如老年代 空间浪费, 整合标记清理思想

分代思想

可触及性

Stop-The-World

GC参数

串行收集器

最古老,最稳定
效率高
可能会产生较长的停顿
-XX:+UseSerialGC
– 新生代、老年代使用串行回收
– 新生代复制算法
– 老年代标记-压缩
并行收集器

ParNew

-XX:+UseParNewGC
–新生代并行
–老年代串行
– Serial收集器新生代的并行版本
– 复制算法
– 多线程,需要多核支持
– -XX:ParallelGCThreads限制线程数量
Parallel收集器

– 类似ParNew
– 新生代复制算法
– 老年代 标记-压缩
– 更加关注吞吐量
– -XX:+UseParallelGC 使用Parallel收集器 + 老年代串行
– -XX:+UseParallelOldGC 使用Parallel收集器 + 并行老年代
并行参数

-XX:MaxGCPauseMills
– 最大停顿时间,单位毫秒
– GC尽力保证回收时间不超过设定值(参考,可能会超过设置的时间)

-XX:GCTimeRatio
– 0-100的取值范围
– 垃圾收集时间占总时间的比
– 默认99,即最大允许1%时间做GC

这两个参数矛盾,不能同时满足

CMS收集器
– Concurrent Mark Sweep 并发标记清除
– 标记–清除算法
– 标记-压缩相比
– 并发阶段会降低吞吐量
– 老年代收集器(新生代使用ParNew)
– -XX:+UseConcMarkSweepGC
– -XX:+UseCMSCompactAtFullCollection Full GC 后,进行一次整理(整理过程是独占的,会引起停顿时间变长)
– -XX:+CMSFullGCsBeforeCompaction 设置进行几次Full GC后,进行一个整理
– -XX: ParallelCMSThreads 设定CMS的线程数量(通常和CPU核数相同)

特点:
– 尽可能降低停顿
– 会影响系统整体吞吐量和性能
– 清理不彻底
– 因为和用户线程一起运行,不能在空间快满时再清理
* -XX:CMSInitiatingOccupancyFraction设置触发GC的阈值
* 如果不幸内存预留空间不够,就会引起 concurrent mode failure
注: 改用串行收集器作为后备

有关碎片
   标记--清除和标记-压缩
     -- 标记--清除有碎片产生
     -- 标记--压缩没有碎片产生

JVM调优思路及Demo

Demo(并行吞吐量):
-XX:+PrintGDetails -Xmx512M -Xms128M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseParallelGC
-XX:+UseParallelOldGC
-XX:ParallelGCThreads=8
-XX:PermSize=32M
-Xloggc:d:/gc.log

Demo(GC停顿):
-XX:+PrintGDetails -Xmx512M -Xms128M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseConcMarkSweepGC
-XX:ConcGCThreads=8
-XX:PermSize=32M
-Xloggc:d:/gc.log
类装载器ClassLoader

系统性能监控

linux中常用功能

uptime:
top:
vmstat:
pidstat: 需要安装 sudo apt-get install sysstat
特点: 可以监控线程状态 -t 参数, 监控CPU: -u, 监控IO: -d

Windows中的监控工具

任务管理器
Perfmon 性能监控器
Process Explorer: 非自带
pslist: 非自带
Java自带的工具

MAT: eclipse 插件 Memory Analyzer (MAT)
偏向锁

-XX:+UseBiasedLocking 默认启用
注: 在竞争激烈的场合,偏向锁会增加系统的负担
轻量级锁(BasicObjectLock)

减少锁持有时间: 锁优化的基本思想
减小锁粒度:
锁分离: 根据功能进行锁分离 eg: 读写锁
锁消除(基于逃逸):

server -XX:+DoEscapeAnalysis -XX:+EliminateLocks 使用锁消除
server -XX:+DoEscapeAnalysis -XX:-EliminateLocks 不使用锁消除
CAS(Compare And Swap) 比较交换

CAS(V,E,N)
Concurrent.atomic包下面的类都是无锁的实现(利用的是CAS实现),比一般有锁的实现效率要高。
业务系统分开,业务库也分开

系统之间使用RPC通信

底层换成 mybatis, 把数据库的MetaData全部缓存到Redis中

底层的DynamicDatasource切换需要修改

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题) 飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由 阅读详情

相关推荐

低代码Agent开发框架使用指南(二)—Coze平台核心功能概览

本篇分享系统介绍了字节跳动推出的低代码智能体开发平台Coze。Coze以免费易用、多模型支持和便捷的跨平台发布为核心优势,显著降低了智能体开发门槛。文章详细解析了平台的六大核心功能:扩展能力边界的插件系统、增强认知的知识库、结构化数据管理的数据库、可视化图像处理的图像流、实现复杂逻辑编排的工作流,以及处理复杂任务的多智能体协作机制,全面展现了Coze平台的强大能力。

weixin_42782643的博客 1358

JVM 学习笔记

JVM 学习笔记JVM 学习笔记

cooldatabase 122

计算机组成原理(二)—— 数据的表示与运算

本章目录引言一、数制与编码1.1 进位计数制1.1.1 进制及转换1.1.2 真值、机器数1.2 BCD码1.3 ASCII 码1.4 校验码1.4.1 奇偶校验码1.4.2 海明码1.4.3 CRC循环冗余码二、定点数的表示和运算2.1 定点数的表示2.1.1 无符号2.1.2 有符号(原码、反码、补码、移码)2.2 定点数的运算2.2.1 移位运算2.2.2 加减运算(溢出判断)2.2.3 乘法运算2.2.4 除法运算2.3 强制类型转换2.4 数据的存储和排列三、浮点数的表示和运算3.1 浮点数的表示

S mile0804的博客 7473

jvm学习笔记

附件中是最近jvm的学习笔记分享给大家,如有不足之处请指出

翻过这座山,就到菩提洞了 128

【Java微服务-医疗管理项目】(附源码+资料+教程)

尚医疗是专门为各大医院、门诊提供的一款医疗管理平台。 系统包含:系统管理、药品进销存管理、看病就诊、收费管理、检查管理、数据统计等核心模块。 通过尚医疗系统可以快速、方便的管理病人从挂号到门诊结束所涉及到的全套流程。也可以清晰明了的体现出药品进货、出售的所有记录。.........

m0_72882572的博客 2203

ch32v103xx 烧写

烧写方式 串口uart, usb,swd(wch link)但不建议按此使用,参官方说明。

qq_39239990的博客 637

JVM学习笔记之CodeCache

JVM学习笔记之CodeCache - Java老K - 博客园

weixin_35843253的博客 205

数据中心机房建设标准及依据

深刻理解、尊重并恪守这些依据,是我们以科学、经济、可靠的方式,为蓬勃发展的数字经济筑牢基石的唯一路径。让我们共同努力,以标准为依据,以匠心为精神,建造更多世界一流的高效能、高可用、高智能的绿色数据中心,共同赋能数字中国的宏伟事业,支撑中华民族在数字时代的伟大复兴征程中稳步前行!今天我将力图以宏大的视角和深入的剖析,系统性地阐述数据中心机房建设所应遵循的多层次、多维度的标准依据,揭示这些依据背后的深层逻辑与时代使命,并探讨其如何共同作用于一座世界级数据中心的诞生。,以支持万兆乃至更高速率的传输。

qq_39980997的博客 1139

JVM最佳学习笔记---总览

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33724659的博客 160

PMO与供应链管理的整合:端到端项目交付的优化策略

在当今全球化和市场竞争日益激烈的环境中,组织面临着前所未有的项目复杂性和交付压力。传统上相互独立的项目管理办公室(PMO)与供应链管理(SCM)正逐渐意识到:只有通过无缝整合,才能实现真正高效的端到端项目交付。本文深入探讨了PMO与供应链管理整合的战略价值、核心框架和实施路径,通过生动的比喻、实际案例和实用工具,展示了如何打破部门壁垒,构建协同高效的项目生态系统。无论您是PMO负责人、供应链专业人士还是高级管理层,都将从本文获得重塑项目交付模式、优化资源利用、降低风险并提升组织竞争力的宝贵见解和行动指南。

项目管理的博客 948

Python经典编程习题100例:第32例:相反顺序输出列表

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 按相反的顺序输出列表的值。 解题思路: > 利用reverse函数逆序 代码: arr=['f','g','e','b'] print(arr) arr.reverse() print(arr) ...

优快云 精品推荐 1416

【JVM】学习笔记

Java虚拟机(JVM)是一个抽象的计算机,用于运行Java程序,通过将字节码转换为机器码实现跨平台性。JVM架构包括类加载子系统、运行时数据区(如方法区、堆、栈等)和垃圾回收机制(GC),后者负责自动回收不再使用的对象。JVM的执行过程涉及字节码的加载、解释执行和即时编译(JIT),以提高性能。性能调优可通过调整堆内存、垃圾回收器和JVM参数实现。JVM还支持多线程和内存模型,确保线程安全。常见问题包括内存泄漏、OOM和性能瓶颈。直接内存是JVM外的高性能内存区域,常用于NIO操作,需手动管理。JVM与其

了凡 1053

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JVM 基础知识学习笔记

JVM 一个运行在计算机上的程序,它的职责是运行 Java 字节码文件。

Gjw_java的博客 1155

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

(转)JVM学习笔记

JVM学习笔记 http://zjkilly.iteye.com/blog/772825

haoppywang的专栏 87

JVM学习笔记(1)-JVM总体篇

目录 0 前言 1 Java体系描述 1.1 Java体系构成 1.2 Java平台描述 2 JVM体系描述 2.1 JVM基本概念 2.2 ​​​​​​​JVM运行原理 3 示例 参考 0 前言      最近买了周志明的《深入理解Java虚拟机 JVM高级特性与最佳实践 》,结合网上的相关文章资料,尝试做一套JVM学习笔记,也算整理和巩固。相关引用文章,已罗列在参考篇中,...

wingsing2010的专栏 4700

JVM学习笔记 01、初识JVM

文章目录前言一、什么是JVM二、学习jvm的用途三、常见的jvm四、学习路线 前言 本篇博客是跟随黑马程序员JVM完整教程,全网超高评价,全程干货不拖沓的学习JVM的笔记,若文章中出现相关问题,请指出! 所有博客文件目录索引:博客目录索引(持续更新) 一、什么是JVM 定义:Java Virtual Machine - java 程序的运行环境(java 二进制字节码的运行环境) 好处: 一次编写,到处运行:JVM屏蔽了字节码和底层操作系统的差异,对外提供了一致的运行环境。解释的方法执行二进制字节码来达到

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 860

JVM学习笔记1-JVM结束生命周期的几种情形

执行System.exit()方法 程序正常执行结果 程序在执行过程中遇到了异常或错误而终止 由于OS错误而导致JVM进程终止

lu322313的博客 189

JVM学习笔记10 - 类加载器总结

bilibili-深入理解JVM 虚拟机 学习笔记 JVM学习笔记 1 JVM学习笔记 2 JVM学习笔记 3 JVM学习笔记 4 JVM学习笔记 5 JVM学习笔记 6 JVM学习笔记 7 JVM学习笔记 8 JVM学习笔记 9 P32_JVM类加载器阶段性总结与学习方式升级(32) ...

晨猫 280

狂神说JVM学习笔记

静态变量、常量:static final类信息(构造方法、接口定义):Class文件,包括类的属性方法注解修饰符运行时的常量池:常量池栈栈的运行原理:通过栈帧对每一个方法进行调用栈里存放方法里局部变量的值(如果是基本数据类型,引用和值都存储在栈里)存放在局部变量表中如果时局部变量表中要存储的是字符串,那就是存储堆里面字符串常量池的地址,如果是存储的值,那就把值从方法区的运行时常量值中取出来,放进去(放的是值而不是地址),只有运行时才会存储,如果不运行局部变量表里就没有东西。

wangmr810的博客 1676

JVM学习笔记1

主要有五个阶段:(下面会重点讲解前三个阶段)

kwert666的博客 1648

JVM学习笔记总结

jvm堆大小限制的参数配置VM Args:-Xms20m -Xmx20m -XX:+HeapDumpOutOfMemoryError 虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照。分析堆快照来确定是内存溢出还是泄漏。jvm栈大小限制的参数配置本地方法栈:-Xoss(HotSpot不可用),-Xss参数设定。如:-Xss128k多线程内存溢出,单线程栈溢出在硬件条件和业务要求下,只能通过...

Seeker-Wu的专栏 383

Java学习笔记之JVM篇

Java学习笔记之JVM篇前言问:什么是JVM?问:JRE/JDK/JVM是什么关系?判断对象是否存活的算法问:如何回收对象垃圾收集算法(4种) 前言 这是JVM学习笔记,内容主要来自 周志明编写的《深入理解Java虚拟机 JVM高级特性与最佳实践》(第2版)一书,相当于是此书的读书笔记,还有一些内容引用自公众号内容 问:什么是JVM? 答:JVM是Java Virtual Machine(Jav...

qq_34882796的博客 872
上一篇: 单元测试
下一篇: Linux服务器分区的方案
Raybor
博客等级 码龄12年 29粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值