摘要:一、耗时统计 在做接口的性能优化时,最重要的是知道时间消耗在哪里。 可以用StopWatch,进行耗时统计。 详情见: https://www.cnblogs.com/expiator/p/17045089.html 二、链路追踪 如果团队使用了Skywalking,可以用来进行链路追踪,耗时统计。
阅读全文
摘要:线程池的基础知识 如果不了解线程池,可以先看一下基础知识。 详情见: https://www.cnblogs.com/expiator/p/9053754.html 核心线程数设置 IO密集型/CPU密集型的 CPU密集型:核心线程数 = CPU核数 + 1 CPU密集的意思是任务需要大量的运算,而
阅读全文
摘要:Redis 批量处理 在开发中,有时需要对Redis 进行大批量的处理。 比如Redis批量查询多个Hash。如果是在for循环中逐个查询,那性能会很差。 这时,可以使用 Pipeline (管道)。 Pipeline (管道) Pipeline (管道) 可以一次性发送多条命令并在执行完后一次性将
阅读全文
摘要:线程池异步的基础知识 详情见:https://blog.csdn.net/sinat_32502451/article/details/133039624 线程池执行多任务,获取返回值 线程池的 submit()方法,可以提交任务,并返回 Future接口。 而 future.get(),可以获取到
阅读全文
摘要:耗时统计 在做性能优化的时候,耗时统计非常有用。 分析出时间主要消耗在哪里,才能够做出相应的优化。 System.currentTimeMillis() 平常我们在做耗时统计时,经常会用 System.currentTimeMillis(),如下: long start = System.curre
阅读全文
摘要:接口报错504 gateway timeout 504 gateway timeout,就是接口超时了。 比如 nginx配置超时时间过短,前端设置了time out,或者是接口响应时间过长。 nginx配置 504 gateway timeout,有可能是nginx代理时,配置的超时时间过短。 h
阅读全文
摘要:CompletableFuture Java5引入了Future和 FutureTask,用于异步处理。Future可以通过get()方法获取异步的返回值。 在Java8引入了CompletableFuture,CompletableFuture不仅实现了Future接口, 还实现了Completi
阅读全文
摘要:问题排查思路 这里说的是主要是debug以及线上问题排查的思路. 解决问题的步骤 确认环境、确定问题、复现问题、查看日志、定位问题 、解决问题 确认环境/url/参数 确认是哪个环境。 是开发环境,测试环境,还是生产环境。 如果问题是在测试环境,去开发环境看问题,不一定能复现。 如果采用了微服务架构
阅读全文
摘要:原文链接:http://developer.51cto.com/art/201511/496263.htm 前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑 的,就像大海里面的鲸鱼一样,它吃一条小虾米有用
阅读全文