在实际项目中,由于需要把接口返回来的对象存在数据库中,所以用到了jackson组件把对象转成json后再保持到数据库中。由于每天处理的数据量太大,而业务对时间的要求非常严格,即使采用4台机器做分布式后,计算时间仍然在2——3个小时,于是性能优化提上了日程。
用jprofiler工具观察到性能主要在两个地方耗时比较多:1.tojson串转换,2.调用其他系统接口。
调用其他系统接口耗时占比在17%左右,tojson转换耗时占比在20%左右。经过小组讨论,决定采用memcached在运行计算之前就缓存数据。缓存命中率为83.4%的情况下,性能如下:
统计
|
未使用缓存
|
使用缓存
|
计算总耗时
|
39
分钟
|
34
分钟
|
单个接口耗时
(ms/
次)
|
38
|
12.9
|
接口
耗时总计
|
15
分钟
|
5
分钟
|
接口
调用次数
|
24002
|
24007
|
数据量
|
5000
|
5000
|
可见,调用接口性能提升2/3。
tojson串转换采用StringBuilder替换jackson的性能对比如下:
tojson
数据量10000,每个单个1400字节左右
,测试5次耗时(ms)情况如下
|
|
1
|
2
|
3
|
4
|
5
|
平均
|
jackson
|
1204
|
1183
|
1196
|
1202
|
1160
|
1189
|
new
StringBuilder
|
1060
|
941
|
912
|
997
|
1160
|
1014
|
new
StringBuilder(1600)
|
784
|
824
|
853
|
818
|
778
|
811.4
|
从对比中可以看到
StringBuilder的性能比jackson提高1/4左右。
分享到:
相关推荐
大型项目中,MySQL数据库性能优化是保证业务流畅、数据安全、系统稳定的重要手段。本文针对一个拥有两亿注册用户的大型移动项目,从MySQL体系架构、设计优化、系统优化、配置优化和语句优化五个方面进行详细解析。 ...
关于web项目的优化,解决我们项目开发中数据量和访问量太大的问题,使我们的项目更加的健壮漂亮
如何使用 Valgrind 和 GDB 进行 C/C++ 项目的性能优化与调试。首先,Valgrind 是一套强大的动态分析工具集,可检测内存泄漏、非法内存访问和数据竞争等问题;其中,Memcheck、Massif 和 Cachegrind 是常用工具,用于...
但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在完成项目后,就可以进行系统测试了,可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、...
本书深入探讨了如何在C++编程中高效地使用内存资源,以及如何进行性能优化,以编写出既高效又优雅的代码。 书籍作者Rene Alexander和Graham Bensley均拥有十几年的软件开发经验,他们曾为多个不同的公司和项目提供...
《CSAPP性能优化实验》是计算机科学与应用(Computer Science and Application Programming)课程的一个实践环节,旨在提升学生对程序性能优化的理解与技能。在这个实验中,我将详细探讨三个关键的优化策略,并结合...
, 关于系统性能优化,《嵌入式Linux内存使用与性能优化》不同于同类书侧重于编程语法或者发挥硬件性能的做法,而是着眼于大型软件项目性能优化实践,阐明了逻辑优化与代码优化之间的辩证关系,提出了软件优化层次的...
vue项目性能优化方案
本篇内容将深入探讨Web前端性能优化的思路与学习方法,结合WebQQ、QQ互联、QQ商家等大型项目研发中的实践经验,提供一套系统的优化框架。 首先,前端性能优化可以从以下几个层面展开: 1. 网络层面优化:优化网络...
TongWeb5.0性能优化配置是一个多方面的工程,涵盖了从JNDI和JDBC连接池的创建与优化,到项目配置、JVM参数、日志级别以及线程数的调整。这些步骤虽然需要一定的技术知识和操作经验,但通过细心配置和优化,能够显著...
ASP.NET应用程序性能优化是开发高效、流畅Web应用的关键环节,特别是在使用Visual Studio 2005这样的强大开发工具时。本主题将深入探讨如何通过多种策略提升ASP.NET应用的性能,确保用户获得最佳的在线体验。 首先...
### Eclipse 开发性能优化与 Java 代码性能优化 在日常的软件开发过程中,尤其是在使用 Eclipse 进行 Android 开发时,经常会遇到 IDE 运行缓慢的情况。为了提高开发效率,本文将详细介绍 Eclipse 开发环境及 Java ...
本书涵盖了C++性能优化的关键概念和技术,适合于希望提高技术水平或在工作中寻求性能提升方案的开发者。 #### 二、版权与出版信息 - **版权信息**:该书版权归Kurt Guntheroth所有,版权所有,未经许可不得复制。 -...
在处理大型项目时,数据库的性能优化至关重要,尤其是像MySQL这样的关系型数据库管理系统,需要优化的方面包括体系结构、设计、系统、配置以及查询语句。本实例分析了一份大型移动项目的MySQL数据库性能优化过程,...
Java项目性能优化是一个涵盖多个层面和技术细节的复杂过程,旨在提升用户体验、提高系统效率和稳定性。性能优化的目标不仅仅是追求速度,而是通过优化产品设计和技术实现,确保系统在各种条件下的快速响应和高效运行...
负载均衡+性能优化+分布式网站安全大型分布式电商项目实战课程;负载均衡+性能优化+分布式网站安全大型分布式电商项目实战课程
### .Net性能优化的几点建议 #### 一、先评测,再优化 性能优化的核心原则之一就是“先评测,再优化”。这意味着在进行任何优化工作之前,首先要对系统的当前性能进行评估,找到真正的瓶颈所在。这一步骤至关重要...