首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏若尘的技术专栏

    JVM 线上调详解

    JDKundefined包含JRE和Java设计语言。是Java语言开发最小环境,即XXX.java变为XXX.class最小环境。 2. 运行时数据 执行Java程序的区域,并将内存划为不同的数据区域。 3. 执行引擎 解释器、编译器、垃圾回收器。 4. 2. JDK1.8内存模型 在这里插入图片描述 1.8内存模型是由年轻代+老年代组成。使用元空间代替永久代,元空间是本地内存空间。 标准参数 -help -version 2. -x参数 -Xint -Xcomp 3. 3.4 -XX参数设置 主要用于jvm调和debug操作。 1. -XX参数类型 boolean类型 -XX:+-<name> 启用或者禁用name属性。

    1.2K75编辑于 2021-12-15
  • 来自专栏公众号:懒时小窝

    Mysql专栏 - 线上调与压力测试

    Mysql专栏 - 线上调与压力测试 前言 本节内容讲述线上的调手段以及压力测试的相关工具,结合一些实际的命令参数,我们将会介绍运行结果的具体含义。 吞吐量: 如果一个系统处理一个mysql请求需要1s,那么一分钟可能只处理100个请求,4核8G的机器部署普通的Java应用系统,通常每秒大致就是抗下几百的并发访问,但是同一个配置的机器可以从每秒一两百请求到每秒七八百请求都是有可能的 (2) 「吞吐量」:这个指的是机器的磁盘存储「每秒可以读写多少字节的数据量」 (3) 「latency」:这个指标说的是往磁盘里写入一条数据的延迟。 20 --table_size=1000000:这一串的意思,就是说在test_db这个库里,构造20个测试 表,每个测试表里构造100万条测试数据,测试表的名字会是类似于sbtest1,sbtest2这个样子的 思考题: 假设开发的Java系统部署在一台4核8G的机器上,那么我们假设这个Java系统处理一个请求非常非常快,每个请求只需要0.01ms就可以处理完了,那你觉得这一台机器部署的Java系统,可以实现每秒抗下几千并发

    2.5K20发布于 2021-09-10
  • 来自专栏Java架构学习路线

    线大厂Java面试必问的2大类Tomcat调

    一、前言 最近整理了 Tomcat 调这块,基本上面试必问,于是就花了点时间去搜集一下 Tomcat 调都调了些什么,先记录一下调手段,更多详细的原理和实现以后用到时候再来补充记录,下面就来介绍一下 ,Tomcat 调大致分为两大类。 1、Tomcat的自身调 采用动静分离节约 Tomcat 的性能 调整 Tomcat 的线程池 调整 Tomcat 的连接器 修改 Tomcat 的运行模式 禁用 AJP 连接器 2、JVM的调 2、调 Tomcat 线程池 打开tomcat的serve.xml,配置Executor,相关参数说明如下。 找到 catalina.sh; 添加; 参数设置; JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8-server -Xms1024m

    53500发布于 2019-09-22
  • 来自专栏犀牛饲养员的技术笔记

    记一次G1垃圾回收线上调的实践

    排查了一圈,找到了一个可疑的点,我发现在压测期间,服务进行了600多次的GC,总的GC时间到达了2~5秒,如下图所示: 我们知道GC的时候会发生stop the world,所以GC的时间过长肯定会影响接口的响应速度

    86130编辑于 2023-02-24
  • 来自专栏oracle3技术大杂烩

    2019-03-08 在ubuntu上调试go-ethereum(2)

    在2019-02-26 在ubuntu上调试go-ethereum中,goland无法在ubuntu下调试,但是dlv调试又太复杂,因此参考以太坊 (go-ethereum) 编译调试环境的搭建,搞定了 golang.org/x/tools/cmd/guru go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv 2

    49230编辑于 2022-05-13
  • 来自专栏云深之无迹

    ROBOMASTER TT巡线.2

    具体的RC参数含义在这里 ---- 这篇文章我们来分析完成无人机的巡线操作需要的一个大致的流程。 我们的TT是一个高度精密的电子设备,所以控制它自己动起来需要很多不同领域的知识才可以,以下的思维导图呈现了我们TT在巡线任务中涉及到的各种知识。 ? 所以对于我们的巡线来讲,获取地表的数据,从图中解算出相应的线信息,靠这个信息来指导无人机飞行、 所以我们的处理也是一帧一帧的来处理,不停的更新地表信息,下图是处理流程。 ? 大于的话就是填充我们上面的值,(0~255) 其实还有很重要的cv2.THRESH_OTSU 作为图像自适应二值化的一个很的算法Otsu大津算法的参数: 使用为cv2.threshold(img, 0, 255, cv2.THRESH_OTSU ) ?

    1.6K30发布于 2021-04-14
  • 来自专栏月落星河Tsukistar的专栏

    1,2线稿!

    “1,2线稿!”APP的开发关键代码与演示。 最近在写OpenCV在Android上用于可见光定位的APP,在轮廓识别的时候偶然用手机里的二次元图片作为样本进行测试,发现线条十分明显,就像下面这张图这样: 这不就是线稿吗,或许可以写一个一键将图片转成线稿的

    71320编辑于 2022-02-21
  • 来自专栏自动化大师

    一文搞懂2线,3线,4线制变送器的原理

    对于短距离传输或特定应用场景,两线制传感器可能是一个经济实用的选择。然而,在需要更高精度和稳定性的场合,三线制或四线制传感器则可能更为合适。 模拟量传感器中的两线制、三线制、四线制主要是根据传感器的接线形式和工作原理来区分的。以下是这三种传感器的区别: 一、两线制传感器 定义:两线制传感器是指现场变送器与控制室仪表之间的联系仅用两根导线。 这两根线既是电源线,又是信号线。 工作原理:两线制传感器利用了4~20mA信号为自身提供电能。电源是从外部引入的,和负载串联在一起来驱动负载。 应用场景:在传输距离大、防爆等场合,通常使用无源的两线制传感器。 二、三线制传感器 定义:三线制传感器中,电源正端和信号输出的正端是分离的,但它们共用一个COM端。 三、四线制传感器 定义:四线制传感器具有电源两根线和信号两根线,电源和信号是分开工作的。 工作原理:四线制传感器的供电大多为AC 220V,也有供电为DC 24V的。

    2.8K11编辑于 2024-08-14
  • 来自专栏一英里广度一英寸深度的学习

    java概要

    Java 实际问题 CPU彪高如何处理? 生产环境应该给应用分配多少线程合适? 不加log如何确定请求是否执行了某一行代码? 不加log如何实时查看某个方法的入参与返回值? Btrace的监控调试 tomcat,nginx,jvm GC调java代码 JVM参数jinfo,jstat统计信息 图形化工具 jmap+MAT jstack线程情况 Btrace安装与使用 Tomcat工具 tomcat 远程debug psi-probe和Tomcat-manager监控Tomcat Tomcat调 Nginx工具 Nginx性能监控与调 ngx_http_stub_status 监控连接信息 ngxtop监控请求信息、nginx-rdd图形监控 JVM内存结构 垃圾回收算法、垃圾回收器 GC日志格式与可视化日志分析工具 Tomcat的Gc调实战 Java代码层调 JVM字节码指令与 : Java heap space * Dumping heap to /home/java_pid10107.hprof

    94560发布于 2019-02-25
  • 来自专栏技术从心

    5种调Java NIO和NIO.2的方式?

    Java NIO(New Input/Output)——新的输入/输出API包——是2002年引入到J2SE 1.4里的。Java NIO的目标是提高Java平台上的I/O密集型任务的性能。 过了十年,很多Java开发者还是不知道怎么充分利用NIO,更少的人知道在Java SE 7里引入了更新的输入/输出 API(NIO.2)。 这篇教程展示了5个在Java编程的一些常见场景里使用NIO和NIO.2包的简单示例。 NIO和NIO.2对于Java平台最大的贡献是提高了Java应用开发中的一个核心组件的性能:输入/输出处理。 如果能够正确地使用的话,Java NIO和NIO.2可以大大减少一些常用I/O操作所花的时间。这就是NIO和NIO.2所具有的超能力,我会在这篇文章里向你展示5种使用它们的简单方式。 要学习NIO和NIO.2的话,Java 2 SDK Standard Edition(SE) documentation 和 Java SE 7 documentation 都是不可或缺的。

    93430发布于 2019-08-07
  • 来自专栏猿人谷

    Java性能调

    1个核,会对年轻代选择并行算法,关于选择细节请参考JVM调文档。   2.生成堆的dump文件  通过JMX的MBean生成当前的Heap信息,大小为一个3G(整个堆的大小)的hprof文件,如果没有启动JMX可以通过Java的jmap命令来生成该文件。   在CPU负载不足的同时,偶尔会有用户反映请求的时间过长,我们意识到必须对程序及JVM进行调。 这个我问题毫无疑问是没有答案的,否则也就不会有调。 4.程序算法调:本次不作为重点 参考资料

    1.7K110发布于 2018-01-17
  • 来自专栏张恒的网络日志

    java性能调

    以下部分内容整理自《分布式Java应用:原理与实践》——林昊 随着系统自身数据量的增长,访问量增加,系统的响应通常会越来越慢,或者是新的功能在性能上无法满足修去,这个时候需要对系统进行性能调。 通常而言,系统的load主要由CPU的运行队列来决定,假设以上情况维持了一分钟,那么这一分钟系统的load就是2。 输入 pidstat 1 2,在console上将会每隔1秒输出目前活动进程的CPU消耗情况,共输出2次。 java应用的CPU调 对于java应用而言,CPU消耗严重主要体现在us 、sy两个值上。 us 当us值过高时,表示运行的应用消耗了大部分的CPU。 sar -n ALL 1 2 执行后以1秒为频率一共输出两次网络IO的情况。

    1.4K20发布于 2020-04-28
  • 来自专栏java初学

    java — JVM调

    不要试图与C进行类比,Java中没有指针的概念;          2. 程序运行永远都是在栈中进行的,因而参数传递时,只存在传递基本类型和对象引用的问题。不会直接传对象本身。     这个内存占用是很恐怖的,它是使用基本类型的N倍(N>2),有些类型的内存占用更是夸张(随便想下就知道了)。因此,可能的话应尽量少使用包装类。 垃圾回收的时候,遍历当前使用区域,把正在使用中的对象复制到另外一个区域中,此算法每次只是处理正在使用中的对象,所以复制的成本比较小,同时复制之后会进行内存整理,不会出现“碎片”问题,此算法的缺点是需要2倍的内存空间 2.按分区对待的方式回收 ①增量收集(Incremental Collecting):实时垃圾回收算法,即:在应用进行的同时进行垃圾回收。不知道什么原因JDK5.0中的收集器没有使用这种算法的。 现在的垃圾回收器(从J2SE1.2开始)都是使用此算法的。 3.按系统线程划分的方式回收 ①串行收集:串行收集使用单线程处理所有垃圾回收工作,因为无需多线程交互,实现容易,而且效率比较高。

    1.2K90发布于 2018-05-14
  • 来自专栏全栈程序员必看

    jvm 调命令_java jvm调工具

    堆中空闲量占的最大比例,大于该值,则堆内存会减少 -XX:MinHeapFreeRatio=40 GC后java堆中空闲量占的最小比例,小于该值,则堆内存会增加 -XX:NewRatio=2 新生代内存容量与老生代内存容量的比例 , startup.sh -> catalina.sh(卡特琳娜) 里设置JVM 参数 jsp + jinfo 查看某个java进程的参数,然后再调整设置 真实调 java -XX:+UseG1GC 监控远端java进程 比如监控客户端的tomcat 演示一下部署在服务器上的tomcat (1)在visualvm中选中“远程”,右击“添加” (2)主机名上写服务器的ip地址,比如31.100.39.63 5.2程序监控调 前提:java 应用程序必然是正常运行的。. 目的:减少GC 频率,减少Full GC 发现现象才去解决? (2)young gc会有stw吗? 不管什么 GC,都会有 stop-the-world,只是发生时间的长短。

    1.4K31编辑于 2022-11-17
  • 来自专栏盛开在夏天的太阳

    JVM调--GC2

    -Xss 调(这部分内容, 是根据课上讲的, 然后扩展出来的, 老师并没有详细讲) 在HotSpot JVM 中有三种概念,分别代表了不同代中发生的GC 动作。          -3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了 总结: JVM调 1. .进程的内存使用量要大于-Xmx定义的值,因为Java为其他任务分配内存,例如每个线程的Stack等. 2.Stack的设定 每个线程都有他自己的Stack. 此时会触发FullGC 二. jvm性能调常用的命令 1. top命令.  看top,主要看这两行数据, 一眼看出java吃内存和cpu的情况  2. jps   看看当前运行的进程有哪些, 这个就不说了, 常用 3. jstack 进程号:   这个命令老师讲的比较简单.

    52820编辑于 2022-05-06
  • 来自专栏全栈程序员必看

    Java 性能调工具

    Java监控工具 jcmd: 打印java进程涉及的基本类,线程和VM信息。 jconsole: 提供JVM活动的图形化视图,包括线程的使用,类的使用和GC活动。 jstack: 转储Java进程的栈信息。 jstat: 提供GC和类装载活动的信息。 jvisualvm: 监视JVM的GUI工具,可以用来剖析运行的应用,分析JVM堆转储。 打开Visual VM之后,左边导航栏会显示出当前机器所有Java进程: 点击你想监控的程序即可对该程序进行监控,Visual VM的性能监控页一共有以下几个tab页: 概述页会显示程序的基本使用情况 下面是一个频繁调用的Java程序,我们会对改程序进行采样: public class MethodTime { static java.util.Random r=new java.util.Random "); map.put("2", "C++"); map.put("3", "Delphi"); map.put("4", "C"); map.put

    84020编辑于 2022-08-05
  • 来自专栏数据人生

    Java GC参数调

    https://docs.oracle.com/cd/E40972_01/doc.70/e40973/cnf_jvmgc.htm#autoId0

    60310编辑于 2022-09-29
  • 来自专栏Java

    Java GC调详解

    Java GC调详解 在Java应用程序中,垃圾回收(Garbage Collection,GC)是管理和释放内存的重要机制。良好的GC调可以提高应用程序的性能和稳定性。 本文将深入探讨Java GC调的原理、常用调技巧以及应用场景,并提供详细的案例和代码示例。 1. GC调概述 GC调是通过调整JVM的参数和应用程序的设计来优化内存管理和垃圾回收机制,以减少GC的频率和影响,提高应用程序的性能和吞吐量。 2. 示例代码:GC调的案例 下面是一个简单的Java代码示例,演示如何通过调整堆内存大小和选择合适的GC算法来优化GC性能: public class GCExample { public static 示例代码:Java GC调的应用场景 下面是一个简单的Java代码示例,演示如何通过对象池技术来优化大对象的创建和销毁: public class ObjectPool<T> { private

    86910编辑于 2025-01-21
  • 来自专栏Linyb极客之路

    Java经验谈

    性能调:经过上一步的分析定位到了问题所在,需要对问题进行解决,使用代码、配置等手段进行优化。 Java也不外乎这三步。 通常,造成文件io性能差的原因不外乎: 大量的随机读写 设备慢 文件太大 2.网络IO查看网络io状况,一般使用的是netstat工具。可以查看所有连接的状况、数目、端口信息等。 性能调 与性能分析相对应,性能调同样分为三部分。 CPU调 不要存在一直运行的线程(无限while循环),可以使用sleep休眠一段时间。 内存调 内存的调主要就是对jvm的调。 合理设置各个代的大小。避免新生代设置过小(不够用,经常minor gc并进入老年代)以及过大(会产生碎片),同样也要避免Survivor设置过大和过小。 多层编译结合了客户端C1编译器和服务端C2编译器的优点(客户端编译能够快速启动和及时优化,服务器端编译可以提供更多的高级优化),是一个非常高效利用资源的切面方案。

    94420发布于 2018-12-24
  • 来自专栏csdn

    JVM(Java Virtual Machine)调

    提纲:JVM调 1. 引言 简介 JVM调的重要性 调的主要目标 2. 结论 JVM调的持续性和动态性 未来的调方向和技术趋势 总结 文章正文 1. 引言 Java虚拟机(JVM)是Java应用程序的运行环境,负责管理应用程序的内存、线程、垃圾回收等资源。 JVM调是确保应用程序在高性能、稳定环境下运行的关键步骤。通过调,开发者可以减少垃圾回收停顿、优化内存使用、提升并发性能,从而改善用户体验。 2. 永久代/元数据区用于存储类的元数据(Java 8前为永久代,Java 8及以后为元数据区)。 3. JVM调的基础知识 JVM调需要利用各种工具和参数来监控和调整虚拟机的性能。 未来的调方向包括更智能的GC算法和更高效的性能监控工具。通过持续的优化,可以确保Java应用程序在各种环境下保持高性能和稳定性。

    43010编辑于 2024-08-05
领券