1.理解的JVM内存结构

 2.对于垃圾回收问题

  垃圾的回收只在堆和永久区(方法区)中,因为对于线程而言,私有存储空间如栈、本地方法区、程序计数器等,会随着方法的加载完成而直接释放空间,因此不需要进行垃圾回收。对于公共空间来说如堆和永久区,需要垃圾回收器参与,自动去收集垃圾,当然手机垃圾过程中,会stop the worl。需要合理做出一些判断,有时候需要在程序代码中进行单独表明。如下图所示问题:

  问题是在判断用户请求是否超时情况下,恰好发生了垃圾回收,并且垃圾回收时间超过设置接口超时时间,导致走到请求失败逻辑判断中。

  代码层面的解决方案,增加一个判断逻辑,判断当前执行时间到下一秒执行是否大于1秒(因为没有代码逻辑,实际执行速度会很快),如果执行大于,则增加stop the world时间的判断。

  JVM性能调优方面,寻找为何会出现垃圾回收这么长时间的 原因了。

JVM内存结构图表展示的更多相关文章

  1. JVM内存结构之堆、栈、方法区以及直接内存、堆和栈区别

    JVM内存结构之堆.栈.方法区以及直接内存.堆和栈区别 一.  理解JVM中堆与栈以及方法区 堆(heap):FIFO(队列优先,先进先出):二级缓存:*JVM中只有一个堆区被所有线程所共享:对象和数 ...

  2. 万万没想到,JVM内存结构的面试题可以问的这么难?

    在我的博客中,之前有很多文章介绍过JVM内存结构,相信很多看多我文章的朋友对这部分知识都有一定的了解了. 那么,请大家尝试着回答一下以下问题: 1.JVM管理的内存结构是怎样的? 2.不同的虚拟机在实 ...

  3. 一文搞懂JVM内存结构+GC

    一.jvm是干什么的? 大家都知道java是跨平台语言,一次编译可以在不同操作系统上运行,怎么做到的呢,看下图: javac把写的源代码(java文件),编译成字节码(class文件),字节码部署到l ...

  4. 一文搞懂jvm内存结构

    一.jvm是干什么的? 大家都知道java是跨平台语言,一次编译可以在不同操作系统上运行,怎么做到的呢,看下图: javac把写的源代码(java文件),编译成字节码(class文件),字节码部署到l ...

  5. jvm系列(二):JVM内存结构

    JVM内存结构 所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能 ...

  6. JVM内存结构之三--持久代

    本文会介绍一些JVM内存结构的基本概念,然后很快会讲到持久代,来看下Java SE 8发布后它究竟到哪去了. 基础知识 JVM只不过是运行在你系统上的另一个进程而已,这一切的魔法始于一个java命令. ...

  7. JVM内存结构

    前言 在Java语言开发过程中,out of memory错误是很常见的一种错误.对于JVM的内存结构有更深入的了解,更更好的帮我们排查此类问题,有效的避免此类问题发生.在JAVA 8中内存结构有进行 ...

  8. 管中窥豹——从对象的生命周期梳理JVM内存结构、GC调优、类加载、AOP编程及性能监控

    如题,本文的宗旨既是透过对象的生命周期,来梳理JVM内存结构及GC相关知识,并辅以AOP及双亲委派机制原理,学习不仅仅是海绵式的吸收学习,还需要自己去分析why,加深对技术的理解和认知,祝大家早日走上 ...

  9. JVM内存结构,运行机制

    三月十号,白天出去有事情出去了一天,晚上刚到食堂就接到阿里电话, 紧张到不行,很多基础的问题都不知道从哪里说了orz: 其中关于JVM内存结构,运行机制,自己笔记里面有总结的,可当天还是一下子说不出来 ...

随机推荐

  1. Python写一个简单的爬虫

    code #!/usr/bin/env python # -*- coding: utf-8 -*- import requests from lxml import etree class Main ...

  2. SciKit-Learn 可视化数据:主成分分析(PCA)

    ## 保留版权所有,转帖注明出处 章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Le ...

  3. mybatis环境搭建(eclipse,idea)

    基于java配置SSM,eclipse 新建maven,web项目 .... 项目结构: jar包 pom.xml spring和DispatcherServlet上下文 public class D ...

  4. Mac Go 环境变量配置

    GOPATH 是工作目录,就是你打代码,代码的存放目录 GOROOT 是Go的安装目录,我下载的是免安装版的 现在的Go环境变量就是设置成这个样子, 终于Bee不会报错了!!!

  5. Linux command line and shell scripting buble

    Chapter 4 More bash shell Commands 1. ps ps -ef 2. top 3. kill 3940 kill -s HUP 3940 killall http* 4 ...

  6. Java中多态的实例

    public class cf { /** * 实际上这里涉及方法调用的优先问题, * 优先级由高到低依次为:this.show(O).super.show(O).this.show((super)O ...

  7. 使用Docker构建基于centos7镜像的python环境

    Dcokerfile配置信息 ############################################## # 基于centos7构建python3运行环境 # 构建命令: 在Dock ...

  8. Firefly-RK3399 上编译安装 OpenCV 3

    原文转自:http://dev.t-firefly.com/thread-12143-1-1.html OS:官方固件 Xubuntu 16.04 1) Install 1.1) Required P ...

  9. 18 12 26 css 学习 选择器

    1.标签选择器 标签选择器,此种选择器影响范围大,建议尽量应用在层级选择器中.举例: *{margin:0;padding:0} div{color:red} <div>....</ ...

  10. CSS行间样式与内部样式

    注释 <!-- --> 快捷键 crtl+/ div 双标签<div></div> CSS语法    属性名:属性值: Css引入方式 1.行间样式的引入:在标签中 ...