首页 > 编程知识 正文

循环次数大怎么优化java,java代码性能调优

时间:2023-05-04 14:54:28 阅读:175869 作者:999

Java代码优化界面优化最近变成了一家新公司。 面试的领导说界面响应很慢。 然后,他给我分配了一个任务来优化界面。 之后,发生了以下事情。

在不了解业务的情况下,需要寻找测试位置接口,找到接口,然后开始品尝代码。 我个人优化的方法是在每个逻辑处理位置打印处理时间的长度,如下图所示。

借助于此,可以容易地知道该代码处理所需的时间,也可以知道在整个接口中它们的处理时间过长。 在日志输入中定位到某个范围后,开始查看代码内部的处理逻辑。

这个可以很容易地根据uid查到所有的信息。 请看我画的地方。 虽然只有两个参数要使用,但sql返回参数将全部返回。 如果用的是自己,以后很多刚进入这里的同学都会犯这个错误。 这里也可以说明,是返还全部量的影响。 1、数据库使用的是mysql。 知道的人都知道。 大多数数据查询都会返回到表中,但如果全部命中,则可以减少回显操作,从而缩短查询的时间。 2、数据量返回少了,传输速度就会变快,于是这里修改了一部分参数后返回,把速度从2秒缩短到了200毫秒。 想想简单的操作能提高多少速度,然后继续看代码。

看到for循环,我开始在心里想些什么。 我继续往下看。 意外的是,for循环嵌套了sql查询。 很明显,这个同学没有对自己提出任何要求。 一般来说,对自己有什么要求的一定不会这样写。 这样写代码会让你不相信幽灵

为了加快速度,这里花了约19秒,但循环数十次就这样花了时间。 几百个循环,这个系统跑不动。 因此,如果可以一次查到数据,就可以一次查到,而不能利用其他组件提前查到数据。 无论如何,请注意,方法多于问题,对自己会有一点要求。 同样的问题我不怎么说。

使用reids的同学要小心。 以下同学使用了reids缓存,但由于缺乏技术,导致了缓存直通。 大量数据被查询到数据库中,也没有数据库。 这里的问题是设计不合理,没有被前端监听,所以在不规则的数据条件下进行查询。 我的临时解决办法是使用正则拦截,暂时用。 优化也不是一蹴而就的,而是慢慢来的,所以大家使用redis的时候一定要定义规则,记住一切都要按照规则操作。 不这样做的话,会产生很多问题。

以上简单说明了遇到的问题。 如果大家遇到了类似的问题,请参考。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。