网页接口响应时间长问题解决办法(粗浅)

2023-10-14 07:50

本文主要是介绍网页接口响应时间长问题解决办法(粗浅),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

普通码农写代码,没有性能优化,当数据量变大,效果就很明显了。接口响应时间过长,导致客户体验效果非常差。

首先,从最外层开始,浏览器按F12,看看Network哪个接口占用时间最长(也有可能存在一些CSS或JS插件一直请求不到导致的时间过长),然后进接口分析你的逻辑代码,一行行审代码,找到耗时的地方进行逻辑优化,最后找到sql去执行下,看看时间是否很长,可以参考下https://blog.csdn.net/Pagegle/article/details/103529738来进行针对性优化。数据量很大很大的话能分表就分表,能分库就分库(这个忘记记录了,可以参考sharding-jdbc的分库分表使用)。如果前面的都没问题,那可能就是网络原因了。

下面根据我的实际情况讲讲优化过程。                                                                                                                                                  一、数据库优化                                                                                                                                                                                          我是查询接口访问过慢,达到了36724ms,什么概念!!!因为我为了查询方便,不想写太多代码,我就将主表和其他一些子表、字典表的数据整合在一起,做了个视图,但是我没有对其视图逻辑进行优化,导致查询时间较长,数据量越多越慢,再加上使用的JPA的findAll方法,累计起来时间就很长了。参考上一篇对MySQL视图进行优化使用explain解释语句,对Extra中是“Using temporary; Using filesort”的语句进行优化。

优化前:                                                      优化后:

二、缩小数据包                                                                                                                                                                                          在使用SpringMVC转Json的时候,会把没有值的字段用Null来占位,这样的话,其实是把一些数据变成了Null。虽然小了,但是还是会占用空间。我们可以在Json序列化时忽略Null属性,可以给类头部加上@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL),这样就可以让SpringMVC把Null属性不采用序列化,且gson包也支持空值不序列化。                                                                                                                                                                                                 优化前:             优化后:

数据包是小了,时间可能因为是测试环境数据量太少效果不明显

 

后面有其他方法再记录

这篇关于网页接口响应时间长问题解决办法(粗浅)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209148

相关文章

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码