首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏JavaEdge

    接口优化概述

    概述 推荐的分库分表中间件mycat 秒杀接口优化

    606110发布于 2018-05-16
  • 来自专栏gglinux.com

    PHP接口性能优化

    针对首屏接口,我们针对其完成了两次性能优化。 分屏加载 将本来属于一个接口的内容,单独在两个请求中返回。第一屏API返回关键的数据,减少用户初次进入的等待时间。第二屏,返回剩余的大部分数据。 现在只需要拿到第一屏的接口,即可完成界面的渲染工作。 分屏后第一屏接口耗时 [这里写图片描述] 分屏后第二屏接口耗时 [这里写图片描述] xhprof性能分析 通过在alpha坏境和beta坏境部署Xhprof性能分析工具。 第四,追踪MYSQL慢查询,优化查询SQL。完成后,第一屏性能提升30%~50%。第二屏提升40%~60%。 实际结果可看下图 第二次优化第一屏接口耗时 [第一屏接口] 第二次优化第二屏接口耗时 [第二屏接口] 希望转载的朋友能够尊重作者的劳动成果,加上转载地址。谢谢!

    3K70发布于 2019-02-23
  • 来自专栏kwai

    接口优化方案实践

    本文将会接着接口性能优化这个话题,从实战的角度出发,聊聊我是如何优化一个慢查询接口的。 上周我优化了一下线上的批量评分查询接口,将接口性能从最初的20s,优化到目前的500ms以内。 经过这次优化,效果立竿见影。 批量评价查询接口最大耗时,从最初的20s,缩短到了5s左右。 第二次优化 由于需要在for循环中,每条记录都要根据不同的条件,查询出想要的数据。 ,接口性能也提升了5倍。 从5s左右,缩短到1s左右。 但整体效果还不太理想。 第三次优化 经过前面的两次优化,批量查询评价接口性能有一些提升,但耗时还是大于1s。 出现这个问题的根本原因是:一次性查询的数据太多。 现在改成业务系统每次只查100条记录,分5批调用,总共也是查询500条记录。 这样不是变慢了吗? 答:如果那5批调用评价查询接口的操作,是在for循环中单线程顺序的,整体耗时当然可能会变慢。

    1.4K80编辑于 2023-03-29
  • 来自专栏芋道源码1024

    接口性能优化技巧

    然后我们就跟踪了 1 周的接口性能监控,这个时候我们的心情是这样的: 有 20 多个慢接口5接口响应时间超过 5s,1 个超过 10s,其余的都在 2s 以上,稳定性不足 99.8%。 作为一个优秀的后端程序员,这个数据肯定是不能忍的,我们马上就进入了漫长的接口优化之路。本文就是对我们漫长工作历程的一个总结。 这个跟 mysql 的 sql 优化有关,mysql 会在 sql 优化的时候自己选择合适的索引,很可能是 mysql 自己的选择算法算出来使用这个索引不会提升性能,所以就放弃了。 一般来说,不建议使用子查询,可以把子查询改成 join 来优化。同时,join 关联的表也不宜过多,一般来说 2-3 张表还是合适的。 这些万金油解决方式往往能解决大部分的接口缓慢的问题,而且也往往是我们解决接口效率问题的最终解决方案。 当我们实在是没有办法排查出问题,或者实在是没有优化空间的时候,可以尝试这种万金油的方式。

    70330编辑于 2022-06-07
  • 来自专栏JAVA

    JAVA代码优化接口优化,SQL优化 (小技巧)

    那么如何优化远程接口性能呢? 上面说到,既然串行调用多个远程接口性能很差,为什么不改成并行呢? 从图中能够看出,大事务问题可能会造成接口超时,对接口的性能有直接的影响。 我们该如何优化大事务呢? 1.索引 接口性能优化大家第一个想到的可能是:优化索引。 没错,优化索引的成本是最小的。 你通过查看线上日志或者监控报告,查到某个接口用到的某条sql语句耗时比较长。 5. 异步处理 有时候,我们接口性能优化,需要重新梳理一下业务逻辑,看看是否有设计上不太合理的地方。 比如有个用户请求接口中,需要做业务操作,发站内通知,和记录操作日志。 但对于一些高并发的系统,请务必遵守单表索引数量不要超过5的限制。 那么,高并发系统如何优化索引数量? 能够建联合索引,就别建单个索引,可以删除无用的单个索引。

    70910编辑于 2024-11-20
  • 来自专栏Java项目实战

    Java 优化5个方面是:架构、SQL、性能、接口和 JVM

    Java 优化5个方面是:架构、SQL、性能、接口和 JVM。这些方面的优化对于提高 Java 程序的性能至关重要。 本文将分别介绍这些方面的优化,并提供一些配代码示例,以帮助读者更好地理解和实践这些优化方法。 架构优化 架构优化是指通过改变程序的设计来优化程序的性能。 SQL优化 SQL 优化是指通过优化数据库查询来提高程序的性能。例如,可以使用索引、优化查询语句、使用分页查询等方法来提高查询性能。 接口优化 接口优化是指通过定义接口来提高程序的可扩展性和可维护性。例如,可以通过实现接口中的方法来实现特定的功能,而不是直接实现类的方法来实现特定的功能。 下面是一个使用接口优化的示例代码: public class InterfaceExample { public static void main(String[] args) {

    69400编辑于 2023-04-09
  • 来自专栏方丈的寺院

    API接口性能优化总结

    摘要 在web开发过程中,经常会遇到接口RT高的情况,除了通过监控事后优化的方式,我们还需要掌握一些常用的手段,避免写出慢的接口。从前端发起调用到后端一般经过网关层、应用层、存储层。 每一层都可以优化,本篇文章主要是应用层优化。 常见性能优化思路 从理论上分析,性能优化手段通常有 批量 请求数据库,我们一般会用in,提高数据库查询效率 调用外部服务,我们也需要要求依赖方提供批量接口,避免多次网络请求 批量查询的id数量也不宜过多 batch -> mServiceA.batchGetA(batch).stream()) .collect(Collectors.toList()); 并行/并发处理,利用多线程可以提高效率 比如接口中需要请求多个外部接口

    82830编辑于 2022-05-25
  • 来自专栏HarmonyOS知识集合

    【HarmonyOS 5】makeObserved接口详解

    【HarmonyOS 5】makeObserved接口详解一、makeObserved接口是什么? makeObserved 接口(API version 12 起可用)用于将非观察数据转为可观察数据,适用于三方包类、@Sendable 装饰的类、JSON.parse 返回的对象、collections.Array (1)接口调用使用及其简单,只需要导入import { UIUtils } from '@kit.ArkUI'进行接口调用接口。麻烦的是识别你的入参是否支持观测监听。 import { UIUtils } from '@kit.ArkUI';import { JSON } from '@kit.ArkTS';// 定义 JSON 数据结构(示例接口)interface

    25610编辑于 2025-04-21
  • 来自专栏技术杂货店

    java集合【5】——— Iterator接口

    一、`iterator`接口介绍 二、为什么需要iterator接口 三、iterator接口相关接口 3.1 ListIterator 3.2 SpitIterator 四、 iterator在集合中的实现例子 -1L : estimateSize(); } // 表示该Spliterator有哪些特性,这个像是个拓展功能,更好控制和优化Spliterator使用 int characteristics public static void spliterator(){ List<String> list = Arrays.asList("1", "2", "3","4","5" 就是不断把前面一部分分出来 结果如下: tryAdvance: 1 2 ------------------------------------------- forEachRemaining: 3 4 5 ---------- spliterator1: 8 9 10 ------------------------------------------ spliterator2: 1 2 3 4 5

    82810编辑于 2022-02-15
  • 来自专栏mathor

    枚举+优化5)——双指针优化1

    从上面的代码我们能看出时间复杂度是O(N^2^) 双指针优化  在某些情况下,根据题目要求,j下标并不需要从i+1重新往后枚举一遍,而是跟随着i向后移动,j也向后移动 ?   ,x + k - 1) return x + k - 1  以题目样例为例,由于k=5,现有最大整数是13。 Hashtable.find(i) need_card++; return need_card <= M  这样整个算法的时间复杂度是O(PK),P是这个数组的最大值,所以有可能有10^8^这么大,K最大10^5^ ,显然会超时 优化1  第一个能优化的地方是对于X的枚举,也就是顺子开头的数值。 ,X+K) 优化2  第二个可以优化的地方就是判断能不能凑出X开头的顺子。我们利用双指针可以把这一步均摊时间复杂度降到O(1)。

    63530发布于 2018-06-19
  • 来自专栏设计模式

    用django写接口优化篇)

    入门:环境及项目搭建》 《django入门:数据模型》 《django入门:视图及模版》 《django入门:Admin管理系统及表单》 《django入门:通用视图类重构视图》 在《用django写接口 (入门篇)》提到这篇会讲 views 的代码优化,在这之前,我们先适当了解下 DRF 中的 Request 和 Response。 优化后的列表接口信息 我们继续做一些修改,在 post_list 函数中加入 format 参数,默认值设置为 None,接着我们对 url 也做一些修改,通过 format_suffix_patterns 对于 detail 接口的修改我们也可以根据对 list 的修改进行相应修改,不做多余解释。 update()`, `partial_update()`, `destroy()` and `list()` actions. """ pass 看到这是不是,觉得我们之前的优化都是一步接着一步来的

    2.5K20发布于 2020-12-15
  • 来自专栏移动端周边技术扩展

    接口优化与后续开发考虑

    { "errno":?, "error":"?", "data":{ "imgUrl":"?", "jumpUrl":"?", "audioUrl":"?" } } 与后端

    47120发布于 2018-06-13
  • 来自专栏雷子说测试开发

    接口用例规范与优化

    交易属于中台服务,给业务方提供交易、支付方面能力,后端部分接口测试较多,所以我们主要测试部分是针对中坚层的测试。接下来介绍一下接口测试用例规范与优化部分。 createInfo2ConfirmReceipt() throws Exception { //发布普通商品 String infoId = Info.addNormalInfo(sellerId, "10", "5" 用例优化 用例分类:随着业务不断扩大,用例越来越多,订单、红包、活动等测试场景越来越多,导致测试用例的分类划分不是很明确。需要定义一个维度来划分测试用例,调整用例结构。 命名规范:随着测试用例接口不断完善,目前已被广泛运用,提出将用例平台化,针对这些情况我们需要提高代码可读性,减少使用接口用例的时间。需对包名、类名、方法名进行命名的优化。 RD也可以使用测试用例,自测上线,随着不断优化,最终形成稳定成熟的测试用例。欢迎各位同学针对用例优化提出宝贵意见。

    77320发布于 2021-03-15
  • go使用消息队列优化接口

    为了提升用户的体验感、系统的稳定性,此时我们就可以使用消息队列对于接口进行优化,对于实时性要求不高的接口使用消息队列来进行处理,提高api响应速度,优化用户体验。 本文将以go语言使用rabbitMQ来演示如何对于一个接口进行优化。 postman再次调用一下我们优化完成的接口我们可以发现,现在调用接口仅需2ms!!! 结尾&完整代码示例虽然使用消息队列可以大幅度优化接口响应时间,但是我们还是需要根据具体业务需求、逻辑进行相对应的优化,以免变成了负面优化,写出了屎山代码。 如果各位想尝试一下接口优化,可以试试优化我的邮箱API接口,如果想知道我是如何进行邮件接口优化的,可以来学习或者参与进我的开源项目。愿这篇文章能帮助到你!!!

    28320编辑于 2024-07-22
  • 来自专栏LIN_ZONE

    接口优化一般过程

    接口优化流程: 注: 此流程是自己在工作中根据实际情况总结所得 如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/15091163.html

    34130发布于 2021-08-05
  • 来自专栏haifeiWu与他朋友们的专栏

    使用 Go 优化我们的接口

    标题起的是有点大,不过还好本片文章主要也是使用 Go 来优化 HTTP 服务的,也算打个擦边球吧~ 背景 特征数据暴增,导致获取一个城市下所有的特征的接口延时高,下面是监控上看到的接口响应耗时,最慢的时候接口响应时间能达到 5s 多。 缓存优化方案 代码优化思路: 1,使用缓存 1.1为什么使用内存,而不是 Redis? 优化后的代码相较于之前代码量少了 50% ,更加清晰与便于维护。下面是优化的代码上线后的效果,请求耗时都在100ms以下: ? 小结 上面整体介绍了下当我们的接口耗时较长的时候的一般处理方案,当然具体问题还得具体分析,所以当出现接口反应慢的情况的时候,我们应该具体分析接口反应慢的具体原因,方可对症下药!

    87840发布于 2020-02-10
  • 来自专栏测试开发干货

    接口测试平台代码实现109:登录态接口-5

    我们本节来制作登陆态接口的请求js函数, 为什么要制作这个调试请求功能? 这个功能在正常使用中是不会用到的,这里只用来给调试用,也就是测试。 确保这个登陆态接口是能够正常请求返回并成功提取 需要用到的参数的。 之后普通接口自动添加登陆态的时候,走的其实是另一套类似的新函数。 打开P_apis.html,给Send按钮加上onclick并且下面新建login_send函数: 具体的代码呢,和普通接口调试层类似,复制过来改改即可,当然我仍然会先改好,再贴可复制的代码: function login_send() { // 获取接口的所有数据 var login_method = document.getElementById('login_method').value 获取前端的数据 进行请求,得到返回值 对返回值进行提取 把提取的结果和返回值一起返回给前端来展示 好现在开始写,由于代码量太大,并且大部分是复制首页发送请求的代码改改,所以大家依然可以复制: # 调试登陆态接口

    46030编辑于 2022-05-19
  • 来自专栏后端精进之路

    JVM性能优化系列-(5) 早期编译优化

    5. 早期编译优化 早期编译优化主要指编译期进行的优化。 javac这类编译器对代码的运行效率几乎没有任何优化措施,但javac做了许多针对java语言代码过程的优化措施来改善程序员的编码风格和提高编码效率,java许多的语法特性都是靠编译器的语法糖来实现的。 遍历循环 遍历循环语句是java5的新特征之一,在遍历数组、集合方面,为开发人员提供了极大的方便。 (i); } } 在编译后的版本中,代码还原成了迭代器的实现,这也是为遍历循环需要被遍历的类实现Iterable接口的原因。 ,jdk7为绝大部分资源对象都实现了这个接口)。

    50620编辑于 2023-10-19
  • 来自专栏java一日一条

    5 分钟搞定 Java Comparable 接口

    Comparable接口时用来干什么的呢? 我们应该如何对事物进行比较和排序?这问题听上去有点莫名其妙,但我希望你认真考虑一下。比方说,我们有一组苹果: ? 例1 我们要怎样对它们进行排序呢? Comparable接口可以帮助我们实现这一目标。Comparable本身不能对对象进行排序,但接口定义的方法 int compareTo(T)可以。 例5 这是Apple类的第一个版本。由于我们使用的是compareTo方法,并且正在排序苹果,所以我实现了Comparable接口。在这第一个版本中,我们通过重量比较对象。 结论 在结论中我只想强调Comparable接口是多么的重要。它既用于java.util.Arrays,也用于java.util.Collections实用程序类,来排序元素和搜索排序集合中的元素。 使用TreeSet和Tree Map,就更简单了——想要它们会自动排序必须实现Comparable接口的元素。

    76810发布于 2018-09-18
  • 来自专栏java一日一条

    5 分钟搞定 Java Comparable 接口

    在这篇文章中,我们要聊一聊Java Comparable接口。 Comparable接口时用来干什么的呢? 我们应该如何对事物进行比较和排序?这问题听上去有点莫名其妙,但我希望你认真考虑一下。比方说,我们有一组苹果: ? 例1 我们要怎样对它们进行排序呢? Comparable接口可以帮助我们实现这一目标。Comparable本身不能对对象进行排序,但接口定义的方法 int compareTo(T)可以。 例5 这是Apple类的第一个版本。由于我们使用的是compareTo方法,并且正在排序苹果,所以我实现了Comparable接口。在这第一个版本中,我们通过重量比较对象。 使用TreeSet和Tree Map,就更简单了——想要它们会自动排序必须实现Comparable接口的元素。

    58951发布于 2018-09-14
领券