当前位置: 首页 > news >正文

python做网站的开发工信部 网站备案

python做网站的开发,工信部 网站备案,分类信息源码cms,做网站版权怎么写作者#xff1a;逍遥Sean 简介#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话#xff0c;可以三连支持一下~ 如有需要我的支持#xff0c;请私信或评论留言#xff01; 前言 很多Java开发… 作者逍遥Sean 简介一个主修Java的Web网站\游戏服务器后端开发者 主页https://blog.csdn.net/Ureliable 觉得博主文章不错的话可以三连支持一下~ 如有需要我的支持请私信或评论留言 前言 很多Java开发岗位要求实际调优经验难倒了JVM小白 想要掌握JVM调优首先理解JVM的组成和机制明白GC的原理和算法掌握调优工具知道参数配置随后在开发过程中根据项目需要进行配置或是机制优化 另外博主之前分享了一篇关于JVM的面试经验欢迎友友学习评价~ 文章链接 Java开发第二轮面试被疯狂问JVM相关被整懵了赶紧好好复习一下 JVM机制理解与调优方案 1 原理1.1 JVM内存分配1.2 JVM的主要组成部分及其作用1.3 JVM运行时数据区包含哪些1.4 JVM 对象创建步骤流程是什么 2 GC2.1 JVM垃圾回收机制何时触发MinorGC等操作2.2 JVM的垃圾回收算法 3 JVM调优3.1 JVM 调优的工具3.2 常用的JVM调优参数3.3 JVM调优方案总结 1 原理 1.1 JVM内存分配 Java虚拟机JVM内存分配主要分为以下几个步骤 堆内存分配Java中的对象都存储在堆内存中当程序需要创建一个新对象时JVM就会在堆中分配一块内存空间并返回该对象的引用。 栈内存分配栈内存用于存放方法调用中的数据如方法的参数、局部变量等。每当调用一个新方法时JVM就会为该方法分配一块栈内存空间并将该方法的参数和局部变量存储在该内存空间中。 方法区内存分配方法区用于存储类的元数据、静态变量、常量等数据通常也称为“永久代”。当JVM需要加载一个类时它就会在方法区中分配一块内存空间并将该类的元数据等信息存储在该内存空间中。 本地内存分配本地内存用于存储使用JNIJava Native Interface调用的本地方法库的数据。当程序需要调用本地方法库时JVM就会为该方法库分配一块本地内存空间并将相关数据存储在该内存空间中。 1.2 JVM的主要组成部分及其作用 类装载器(Class Loader)Java代码 ----- 字节码 的编译过程。JVM中的类装载器用于加载Java程序的类文件。它会将Java程序中的类文件加载到内存中并生成对应的Java类。 运行时数据区(Runtime Data Area)把上一步编译得到的字节码加载到内存中。JVM中的运行时数据区用于存储Java程序中的数据。它包括方法区、堆、栈、程序计数器和本地方法栈。 执行引擎(Execution Engine)解析上一步加载而来的字节码翻译成为系统指令交由CPU执行。JVM中的执行引擎用于执行由字节码文件生成的指令。它是将Java程序转换为机器指令的重要组成部分。 本地库接口(Java Native Interface(JNI))JVM中的JNI允许Java程序调用本地应用程序。JNI提供了一种标准的接口使Java程序可以与C或C程序进行交互。 Java虚拟机语言规范(Java Virtual Machine Specification)诸如IO之类的由其他语言写成的本地库接口。JVM中的规范文件定义了Java编程语言的语法和语义。它描述了JVM如何解释Java程序并将其转换为机器指令。 调试接口(Debugging Interface)JVM中的调试接口允许开发人员在代码执行期间调试Java程序。它提供了一些开发工具如JMX(Java Management Extensions)和JVMPI(Java Virtual Machine Profiler Interface)。 1.3 JVM运行时数据区包含哪些 程序计数器行号指示器通过改变该值以选取下一步的指令 Java虚拟机栈局部变量、方法出口等为JVM服务 本地方法栈局部变量、方法出口等为本地Native方法服务 堆区内存最大的一块所有的对象实例都在这里分配内存 方法区常量、静态变量等 1.4 JVM 对象创建步骤流程是什么 类加载JVM需要先加载类定义。如果定义这个类的.class文件还没有被加载JVM就会把这个文件读进来然后对它进行解析和验证。 分配内存当类被加载后JVM需要在堆上分配内存来存储对象。根据对象的类型和大小JVM会在堆上分配一段连续的内存空间。 初始化成员变量在对象创建的过程中JVM需要初始化对象的所有成员变量。如果成员变量是基本类型JVM会给其默认值如果成员变量是引用类型JVM会初始化为null。 执行构造函数当内存空间分配完成并且成员变量初始化完成后JVM会调用构造函数对对象进行初始化。 返回对象引用构造函数执行完成后对象就被创建成功了。JVM会返回对象的引用开发者就可以通过该引用来访问和操作该对象。 2 GC 2.1 JVM垃圾回收机制何时触发MinorGC等操作 分代垃圾回收机制不同的对象生命周期不同。把不同生命周期的对象放在不同代上不同代上采用最合适它的垃圾回收方式进行回收。 JVM中共划分为三个代年轻代、年老代和持久代 年轻代存放所有新生成的对象 年老代在年轻代中经历了N次垃圾回收仍然存活的对象将被放到年老代中故都是一些生命周期较长的对象 持久代用于存放静态文件如Java类、方法等。 新生代的垃圾收集器命名为“minor gc”老生代的GC命名为”Full Gc 或者Major GC”.其中用System.gc()强制执行的是Full Gc. 判断对象是否需要回收的方法有两种 引用计数。当某对象的引用数为0时便可以进行垃圾收集。对象引用遍历。如果某对象不能从这些根对象的一个至少一个到达则将它作为垃圾收集。在对象遍历阶段gc必须记住哪些对象可以到达以便删除不可到达的对象这称为标记marking对象。 触发GCGarbage Collector的条件 GC在优先级最低的线程中运行一般在应用程序空闲即没有应用线程在运行时被调用。 Java堆内存不足时GC会被调用。 2.2 JVM的垃圾回收算法 简要记忆 标记-清除无用对象全部干掉 标记-整理有用对象都向一边移动边界以外的全部干掉 复制算法左边内存快满时将其中要保留的对象复制到右边内存中然后整体干掉左边内存。右边同理内存利用率仅有一半 分代算法根据对象存活周期的不同将内存划分为几块一般是新生代和老年代新生代基本采用复制算法老年代采用标记整理算法。 完整概念 标记-清除算法Mark-Sweep首先标记所有活动对象然后清除所有未标记的对象。复制算法Copying将存活对象复制到一块新的内存中然后清除旧的内存。标记-整理算法Mark-Compact首先标记所有活动对象然后将所有存活对象移到一端最后清除端边界之外的所有对象。分代收集算法Generational根据对象的生命周期划分为不同代根据代的特点采用不同的垃圾回收算法如新生代采用复制算法老年代采用标记-整理算法。并发标记-清除算法Concurrent Mark-Sweep在应用程序运行的同时标记和清除垃圾减少停顿时间。G1算法Garbage-First将堆内存分成多个大小相等的区域根据垃圾多少先清理垃圾最多的区域提高垃圾回收效率。 3 JVM调优 3.1 JVM 调优的工具 JVM 调优的常用工具包括以下几种 jstat用于监视 JVM 运行状态和性能指标。jmap用于生成 Java 堆转储快照并进行分析。jstack用于生成 Java 线程转储快照并进行分析。VisualVM是一个图形化的工具可用于监视和分析 JVM 应用程序的运行状态和性能指标。jconsole也是一个图形化的工具可以监视和管理 JVM 应用程序。JVM Profiler是一个高级的分析工具可用于分析 JVM 应用程序的性能瓶颈。GCViewer是一个用于分析 JVM 垃圾回收行为和性能的工具。 这些工具都有各自的特点和优劣具体使用取决于实际调优需求。 JDK 自带了很多监控工具都位于 JDK 的 bin 目录下其中最常用的是 jconsole 和 jvisualvm这两款视图监控工具。 • jconsole用于对 JVM 中的内存、线程和类等进行监控 • jvisualvm JDK自带的全能分析工具可以分析内存快照、线程快照、程序死锁、监控内存的变化、 gc 变化等。 3.2 常用的JVM调优参数 常用版 • -Xms2048M最小内存2048M • -Xmx2048M最大内存2048M • -XX:NewRatio4设置年轻的和老年代的内存比例为 1:4 • -XX:SurvivorRatio8设置新生代 Eden 和 Survivor 比例为 8:2 • -XX:UseConcMarkSweepGC指定使用 CMS Serial Old 垃圾回收器组合 • -XX:PrintGC开启打印 gc 信息 • -XX:PrintGCDetails打印 gc 详细信息。 完整版 -Xms设置JVM初始堆大小-Xmx设置JVM最大堆大小-Xmn设置年轻代大小-XX:SurvivorRatio设置Eden区和Survivor区的比例-XX:MaxPermSize设置永久代大小-XX:MaxTenuringThreshold设置对象晋升年龄的最大值-XX:NewRatio设置老年代与年轻代的比例-XX:UseConcMarkSweepGC使用CMS垃圾回收器-XX:UseParallelGC使用并行垃圾回收器-XX:ParallelGCThreads设置并行垃圾回收线程数-XX:CMSParallelRemarkEnabled启用CMS回收完成后并行分析标记-XX:UseParallelOldGC使用并行老年代垃圾回收器-XX:MaxGCPauseMillis设置最大垃圾回收停顿时间-XX:AggressiveOpts启用侵略性优化特性-XX:OptimizeStringConcat启用字符串拼接优化-XX:UseBiasedLocking启用偏向锁-XX:CompileThreshold设置JIT编译阈值 3.3 JVM调优方案总结 调整内存分配参数包括最大堆内存、最小堆内存、新生代大小等以避免频繁的垃圾回收和内存溢出。 优化垃圾回收可以通过选择不同的垃圾回收器调整回收器选项等来实现。 选择合适的JVM版本新版本的JVM可能会提供更好的性能和稳定性。 减少对象的创建避免频繁的对象创建和销毁尽量重用已经创建的对象。 使用线程池尽量减少线程的创建和销毁使用线程池来管理线程。 避免过度同步使用适当的同步控制方式避免过度使用锁和同步方法。 优化代码结构和算法使用更高效的算法和数据结构避免不必要的计算和内存消耗。 监控JVM运行状态及时发现问题并解决包括内存泄漏、线程死锁等。 使用JVM调试工具如JVisualVM、JConsole和Java Flight Recorder等以便更好地分析和解决问题。 注以上方案须具体问题具体分析不同应用场景可能需要不同的调优方法。
http://wiki.neutronadmin.com/news/397289/

相关文章:

  • 淘宝客怎么做的网站推广微信小程序是什么模式
  • 购物类型网站建设wordpress评论主题
  • 陕西民盛建设有限公司网站企业大全官网
  • 网站前台可以打开wordpress菜单代码
  • 上海网站建设特点做地图的网站
  • 做网站是什么专业中淼建设工程有限公司网站
  • 专业搭建网站公司旅游网站开发背景及意义
  • 网站制作常用代码国泰君安官方网站建设集团
  • 服务器网站301重定向怎么做毕业答辩为什么做网站
  • 上海网站建设定制公司大连开发网站建设
  • 自己做优惠券网站旅游网站建设方案简介
  • 建设银行南通城区网站沃家组网网络服务费
  • 如何进行目的地网站建设潮州市网站建设
  • 贵 建设厅网站文件百度指数的搜索指数
  • 物流网站素材seo公司优化方案
  • 山东济宁做网站的公司有哪些企业网站建设硬件
  • 做网站前景怎么样企业网站的综合要求
  • 网站备案账号密码软件开发具体流程
  • 做网站公司融资多少钱建设部网站 标准下载
  • 项目管理软件培训徐州网络优化招聘网
  • 哪个网站亲子游做的好温州建站方案
  • 给用ps做的网站加div响应式网站模板html
  • 郑州加盟网站建设做教育集团的网站建设
  • 如何做网站模特厦门长实建设有限公司网站
  • 网站论坛怎么做软件外包产生的背景和原因
  • 网站优化协议wordpress qqoq主题
  • dnf盗号网站怎么做网站地图提交给百度
  • 崇左北京网站建设网站建设对图片有哪些要求
  • 郑州网站建设更好建立网站有什么要求
  • 多少钱做网站策划大型活动公司