谷粒商城实战笔记-144-性能压测-性能监控-堆内存与垃圾回收

devtools/2024/9/23 10:23:05/

文章目录

  • 一,两种类型的应用
    • 1,CPU密集型应用
      • 示例:Apache Spark
    • 2,IO密集型应用
      • 示例:MySQL
  • 二,监控

我们通过压力测试对接口进行了性能评估,以确定其是否满足性能要求。
如果不符合,就需要进行优化。

优化时需要考虑多方面因素,如:

  • 数据库性能
  • SQL语句效率
  • 应用程序的编码质量
  • 中间件的影响
  • 网络IO
  • 操作系统

性能优化首先要判断应用是CPU密集型还是IO密集型

一,两种类型的应用

CPU密集型应用需要大量计算,而IO密集型应用则涉及大量的数据传输和读写。针对不同类型的应用,优化策略也不同。

例如,CPU密集型应用可以通过增加CPU或使用多台服务器来分担任务。

而IO密集型应用则需要考虑使用固态硬盘、增加内存、缓存技术和提高网络传输效率。

1,CPU密集型应用

CPU密集型应用是指那些需要大量计算资源,对处理器性能要求较高的应用。这类应用的特点是CPU使用率很高,而IO操作相对较少。它们通常涉及到复杂的算法处理、数据分析或图形渲染等任务。

示例:Apache Spark

Apache Spark是一个开源的分布式计算系统,它提供了一个快速和通用的集群计算平台。Spark广泛应用于大数据处理和机器学习领域,其核心是一个优化的内存计算引擎,能够处理大规模数据集。

性能特点:

  • 内存计算: Spark利用内存进行数据计算,减少了磁盘IO操作,从而提高了处理速度。
  • 并行处理: 通过并行处理,Spark能够将任务分配到多个CPU核心上,实现高效的计算。

2,IO密集型应用

IO密集型应用是指那些主要受限于输入输出操作的应用,如网络服务、数据库操作等。这类应用的特点是CPU使用率相对较低,但对IO操作的依赖很高。

示例:MySQL

MySQL是一个广泛使用的开源关系数据库管理系统。数据库操作通常涉及到大量的磁盘读写,因此MySQL是一个典型的IO密集型应用。

性能特点:

  • 缓冲管理: MySQL通过缓冲池来减少磁盘IO操作,提高查询性能。
  • 索引优化: 通过优化索引结构,MySQL能够快速定位数据,减少IO操作的次数。

二,监控

就像中医看病会望闻问切一样,在计算机应用优化过程中,也需要收集足够的信息才能定位到问题,根据问题制定解决方案,这些信息就是各种监控指标。

我们需要监控CPU和内存的使用率、线程数等,以便进行合理的优化和分析。

Java的内存模型和垃圾回收机制对于性能优化至关重要。

Java虚拟机(JVM)的内存分为多个区域,包括堆、方法区、程序计数器、本地方法栈和虚拟机栈。

其中,堆是存储对象实例和数组的地方,是优化的重点。

JVM的执行引擎负责执行方法调用,而本地方法则涉及操作系统的接口。

JVM的堆分为新生代和老年代。新生代包括伊甸园区和两个幸存者区(S0和S1)。

对象首先在伊甸园区创建,如果内存不足,则触发Minor GC,清理新生代中不再使用的对象,并将存活的对象移动到幸存者区。

幸存者区的两个区域会交替使用,以确保总有一块空间是空闲的。

当对象在幸存者区存活超过一定次数后,它们会被晋升到老年代。老年代存储的是长期存活的对象和大对象。

如果新生代或老年代的内存不足,会触发Full GC,这是一种成本较高的垃圾回收操作。因此,在性能优化时,要尽量避免Full GC的发生。


http://www.ppmy.cn/devtools/92169.html

相关文章

可视化案例(3)

疫情地图 1.分析数据 通过三方网站等对大量数据进行分析,解析出数据中的key:value解析网站:JSON在线视图查看器(Online JSON Viewer) 2.导包 导入将使用的包和模块 # 导包 import json 3.获取数据 文本数据全部获取 # 读取数据 f ope…

【鸿蒙开发基础学习】TS到ArkTS适配指导

什么是ArkTS ArkTS提供了语言运行时相关能力 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析&#xf…

Selenium + Python 自动化测试09(多窗口切换)

我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。 上一篇我们讨论了截图的操作方法,本篇文章我们讲述一下多窗口切换的操作方法。 在实际的测试项目组中我们可能会遇到多窗口的情况,有时候需要在不同窗口…

乡村旅游宣传网站/某城市旅游网站的设计与实现/旅游景点宣传系统

摘要 随着计算机技术,网络技术的迅猛发展,Internet 的不断普及,网络在各个领域里发挥了越来越重要的作用。特别是随着近年人民生活水平不断提高,旅游宣传给用户带来了及大方便。 在经济快速发展的带动下,旅游业的发展也…

第二章 Django view视图

设置url动态参数 view.py def detail(request, req_id):return HttpResponse(req_id:%s % req_id)url.py urlpatterns [path(<int:req_id>/detail, views.detail, namedetail), ]访问 http://0.0.0.0:8080/myapp/11/detail

行业例会2024东莞电力自动化展览会

时间&#xff1a;2024年11月18-20日 地点&#xff1a;广东现代国际展览中心 ◆展会背景background&#xff1a; 在社会生产发展过程中&#xff0c;离不开电力能源的供应&#xff0c;而电力供应也需要相应的…

Java设计模式解析:工厂模式和策略模式的使用场景

Java设计模式解析&#xff1a;工厂模式和策略模式的使用场景 设计模式是软件开发中的重要工具&#xff0c;它们为解决常见问题提供了经过验证的方案。工厂模式和策略模式是两种常见的设计模式&#xff0c;它们在不同的场景下各有优势。本文将深入解析这两种模式&#xff0c;包…