写了个shell脚本跑了大概1个小时,了解一下young区配置为多少大的时候,每次申请内存的大小和QPS的关系
每个申请用ab进行压测,先压测1000次,这个1000次是预热,然后再压测30000次,然后修改配置,重启tomcat,不断重复上面过程,取得结果,:
-XX:NewSize
|
QPS(申请3M)
|
QPS(申请4M)
|
QPS(申请5M)
|
QPS(申请6M)
|
QPS(申请7M)
|
GC(count)
|
GC(real时间)
|
128
|
881
|
634
|
456
|
382
|
314
|
8098
|
94.2
|
178
|
943
|
704
|
548
|
427
|
350
|
5533
|
60.77
|
228
|
951
|
739
|
576
|
469
|
385
|
4219
|
37.72
|
278
|
983
|
757
|
601
|
490
|
409
|
3316
|
28.62
|
328
|
980
|
767
|
609
|
507
|
427
|
2734
|
23.24
|
378
|
953
|
769
|
610
|
513
|
436
|
2306
|
19.28
|
428
|
996
|
766
|
618
|
521
|
449
|
2002
|
16.8
|
478
|
973
|
757
|
629
|
528
|
450
|
1756
|
15.78
|
528
|
992
|
765
|
633
|
531
|
453
|
1576
|
13.23
|
578
|
1006
|
786
|
624
|
533
|
466
|
1431
|
11.66
|
628
|
977
|
776
|
634
|
535
|
461
|
1304
|
11.03
|
678
|
1003
|
775
|
633
|
544
|
462
|
1202
|
10.2
|
728
|
1001
|
783
|
638
|
534
|
465
|
1115
|
9.19
|
778
|
999
|
792
|
643
|
531
|
474
|
1037
|
8.68
|
828
|
1014
|
787
|
642
|
538
|
472
|
971
|
8.18
|
878
|
1014
|
782
|
640
|
545
|
471
|
913
|
7.59
|
928
|
1006
|
790
|
645
|
542
|
473
|
859
|
7.12
|
978
|
998
|
793
|
643
|
535
|
466
|
812
|
7.76
|
以上表格用折线图表示:
看起来还是有规律的:
申请内存
|
QPS转折点:
young/申请的内存
|
3M
|
92.66666667
|
4M
|
94.5
|
5M
|
95.6
|
6M
|
104.6666667
|
7M
|
111.1428571
|
根据上面数据得到的总结:
1、 Young区越大性能越好
2、 每次请求的内存M,和young区的内存Y ,Y超过M的100倍左右时QPS提升不再明显
3、 我们的监控能得到每个系统的每次请求的内存大小,然后根据young的配置,可以给出优化建议 4、 系统是否需要升级到64位可以由此进行判断
|
|
分享到:
相关推荐
它可以监控应用的网络活动,包括请求时间、大小和状态,特别适合快速定位网络问题。 5. **MITMProxy**:这是一款开源的交互式HTTPS代理,适用于各种平台,包括命令行和图形界面。MITMProxy可用于拦截、查看和修改...
本文将详细讲解如何使用Java处理小程序和App的微信授权,以及解析小程序传递的`encryptedData`参数,以获取移动端用户的详细信息。 首先,小程序授权主要依赖微信开放平台提供的OAuth2.0协议,它允许第三方应用在...
【uni-app封装请求完成示例项目】是一个专为uni-app框架设计的实用示例,旨在帮助开发者更高效地处理网络请求。uni-app是一款基于Vue.js开发的多端框架,能够一次编写,多端运行,覆盖H5、小程序、App等平台。在实际...
标题中的"appengine-java-sdk-1.3.1"指的是Google App Engine的Java版本SDK,这是一个用于在Google云平台上开发和部署Java应用程序的工具包。这个SDK包含了运行和测试Google App Engine应用所需的所有组件,包括开发...
这款名为"安卓Java原生开源小说APP源码"的项目是一个专为Android平台设计的开源应用,它允许用户自定义小说阅读来源,并提供了超过300个预设的书籍资源。这个应用程序是用Java编程语言编写的,符合Android平台的原生...
2. **商户配置**:在使用微信APP支付前,需要在微信商户平台上注册并获取必要的配置信息,如商户ID(partnerid)、API密钥(appkey)等,这些信息将在支付过程中用于身份验证和签名计算。 3. **统一下单接口**:...
5. **性能监控**:AppEngine提供了详细的性能监控工具,包括请求统计、内存使用情况、CPU使用率等,帮助开发者优化应用性能。 6. **版本控制**:SDK支持多版本部署,可以同时运行不同版本的应用,方便对比和回滚。 ...
原生Java影视APP源码意味着该应用是直接用Java语言编写的,没有依赖任何中间层或混合框架,这通常能带来更高的性能和更好的设备兼容性。开发者可以深入到Android系统的底层,充分利用硬件资源,实现流畅的播放体验和...
这里的"扫码下载app代码说明(java,web)"指的是使用Java和Web技术实现这一功能的代码实践。下面我们将深入探讨这个话题。 首先,我们需要了解扫码下载的基本流程: 1. **生成二维码**:服务器端根据Android和iOS...
源码分为前端和后端两个部分,前端使用了uni-app框架,而后端则是基于Java语言。以下是相关知识点的详细说明: 1. **uni-app**:uni-app是一款由ECharts团队开发的多端开发框架,它允许开发者用一套代码编写应用,...
### Java代码发送JSON格式的HTTP POST请求:深入解析与实现 在现代的Web开发中,JSON(JavaScript Object Notation)已成为数据交换的标准格式之一,因其轻量级、易读性及跨平台兼容性而受到广泛青睐。对于Java...
标题和描述中提到的知识点主要包括Java环境的配置和App Inventor环境的配置。以下是根据提供的文件内容展开的详细知识点: ### Java环境配置 #### 获取Java安装包 - 访问Oracle官网下载指定版本的JDK安装包。 - ...
而Spring Boot是目前最流行的Java企业级应用开发框架,它极大地简化了配置和部署过程,提供了丰富的功能和插件支持。 1. **基础架构设计**: - RESTful API:为了提供良好的接口给app,后台服务器通常会采用...
本文将深入探讨一个基于Java的为APP开发HTTP API应用的脚手架模板,这是一种预先配置好的框架,旨在加速开发过程,提供标准化的代码结构和最佳实践。 首先,我们来理解“脚手架”一词。在软件开发中,脚手架是一种...
3. **配置解析**:AppWeb使用`conf.c`和`conf.h`中的函数来解析配置文件。了解这些函数的工作原理,可以方便地自定义服务器配置。 4. **路由与请求处理**:`http.c`和`http.h`包含了HTTP协议处理的实现,包括请求...
支付宝APP支付Java版是支付宝为开发者提供的一种便捷的在线支付接口,主要应用于移动应用中的商品购买、服务费用收取等场景。在Java环境下实现支付宝APP支付,开发者需要掌握以下几个关键知识点: 1. **集成SDK**: ...
在**Android APP支付后台** 的实现中,Android客户端首先向Java后台发送支付请求,包含商品信息等。后台服务器接收到请求后,会根据微信支付API生成预支付订单,然后将预支付订单ID及相关参数返回给APP。这部分涉及...
总之,理解Android的内存管理和工具有助于开发者有效地定位和解决内存泄露问题,从而提升App的性能和稳定性。通过持续监控、合理设计代码结构和使用专业工具,可以显著减少内存泄露的发生,优化用户在使用Android ...
### Java 发送 HTTP 请求报文 JSON 的实现方法 在现代软件开发中,HTTP 请求与响应是客户端和服务端之间通信的基础。对于 Java 开发者来说,能够熟练掌握如何使用 Java 来构建 HTTP 请求并发送 JSON 数据是一项重要...
这个应用程序的核心在于数据的获取、处理以及展示,我们将利用Java配合现代Android开发中的流行框架RxJava和Retrofit来完成这一任务。 首先,让我们来了解Retrofit。Retrofit是一款由Square公司开发的Java库,专门...