
optimization
文章平均质量分 77
Dongguabai
这个作者很懒,什么都没留下…
展开
-
Spring Cloud各个微服务之间为什么要用http交互?难道不慢吗?
拿通信协议来说,HTTP肯定比TCP慢,HTTP协议本身有一个变长的头,TCP不需要这个东西,但是反过来,HTTP这个头可以用来做很多扩展性的东西,用TCP就需要一些自己定义一个类似的头,这么来看,TCP的复杂度就上升了。但是反过来,1s序列化20万次,跟1s序列化22万次,虽然性能相差了10%,但是我们一次RCP请求里,相对于几ms的网络,几ms的数据库处理,10-200ms这个区间的RT来看,HTTP和JSON序列化的这点性能损失,在99%的场景下可以直接作为误差忽略掉。作者:kimmking。转载 2024-01-03 13:48:28 · 372 阅读 · 0 评论 -
优化单元测试效率:Spring 工程启动耗时统计
数据库连接可以延迟初始化移除无用的依赖注入内部封装的 Dubbo 组件存在很多优化点,如:Dubbo Provider 在本地没必要对外暴露服务懒加载创建 Reference 代理尽管不同项目的耗时原因各有差异,但只要能够确定具体的耗时点,问题就不会太棘手。本文介绍了一个简单的工具,用于获取 Spring Bean 初始化的时间,借此能够准确定位具体的 Bean,从而有针对性地进行优化。通过优化这些耗时操作,就能够有效提升整个项目的启动速度,显著增强研发工作的效率。原创 2023-10-24 21:09:07 · 880 阅读 · 0 评论 -
服务监控与优化之负载均衡之负载最低优先
负载最低优先” 的负载均衡策略在分布式系统中非常常见,目的是将负载较低的服务器优先分配请求,以确保资源的最佳利用。负载最低优先可以使用如最小连接数、CPU/IO 负载等。但也要注意的是这种策略会极大增加系统的复杂度,这里引入《从零开始学架构》中的介绍:负载最低优先算法基本上能够比较完美地解决轮询算法的缺点,因为采用这种算法后,负载均衡系统需要感知服务器当前的运行状态。当然,其代价是复杂度大幅上升。原创 2023-09-22 18:56:02 · 438 阅读 · 0 评论 -
服务监控与优化之一次对服务内存占用过高的排查
本次对系统内存进行了一次粗粒度的优化,但仔细看系统仍然有很大的优化空间,如果有进一步的优化进展,将分享并与大家进行讨论。实际上,在网上有很多关于内存持续升高问题的分析,尽管原因不尽相同,但它们为我们提供了宝贵的思路,尤其当我们自己遇到困惑时,这些分享能够为我们提供新的启发。而这正是经验分享的真正价值所在。原创 2023-09-19 23:53:13 · 293 阅读 · 0 评论 -
对一段代码的性能分析
先看这么一段代码:/** * @author Dongguabai * @Description * @Date 创建于 2020-06-02 23:27 */public class ArrayTest { private static StopWatch sw = new StopWatch("Test"); public static void main(String[] args) throws InterruptedException { Threa原创 2020-06-04 20:09:30 · 375 阅读 · 0 评论 -
MySQL 中 filesort 优化
转自:https://blog.youkuaiyun.com/shengqianfeng/article/details/80804218用Explain分析SQL语句的时候,经常发现有的语句在Extra列会出现Using filesort,根据mysql官方文档对他的描述:MySQL must do an extra pass to find out how to retrieve the row...转载 2018-12-19 19:29:19 · 1176 阅读 · 0 评论 -
Oracle SQL优化之SQL编写顺序
关于SQL的编写顺序有这样的说法:多表查询顺序下面来测试一下:drop table tab_big;drop table tab_small;create table tab_big as select * from dba_objects where rownum<=30000;create table tab_small as select * from ...原创 2018-11-20 17:24:13 · 472 阅读 · 0 评论 -
Oracle SQL优化之COUNT
先看看Oracle SQL优化中关于COUNT的几条谣言:1. COUNT(*)比COUNT(列)更慢!项目组必须用COUNT(列),不准用COUNT(*);2. COUNT(*)用不到索引,COUNT(列)才能用到;3. COUNT是统计出全表的记录,是吞吐量的操作,肯定用不到索引;COUNT(*)和COUNT(列)哪个更快这里测试一下:连接数据库:创建测试表:...原创 2018-11-20 15:51:44 · 3035 阅读 · 0 评论 -
Select count(*)、Count(1)、Count(0)的区别和执行效率比较
个人感觉单纯的比较它们之间的效率意义不大,关键要注意在使用上的区别,具体可参看:https://blog.youkuaiyun.com/Dongguabai/article/details/84301705=======================================================================转自:https://www.cnblogs.com...转载 2018-11-09 17:42:40 · 503 阅读 · 0 评论 -
Oracle中使用join表连接查询代替 in和not in 查询
转自:https://blog.youkuaiyun.com/itWMdevoloping/article/details/80798914首先,在oracle中效率排行:表连接>exist>not exist>in>not in,而且使用in查询会有查询条件数量不能超过1000的限制;因此如果简单提高效率可以用exist代替in进行操作,当然换成表连接可以更快地提高效率,具体是用...转载 2018-11-09 15:50:31 · 1494 阅读 · 0 评论 -
关于Slf4j中占位符{}
日志输出中{}很好用(具体可参看:https://blog.youkuaiyun.com/Dongguabai/article/details/83719754):{}的确使用很方便,但是大多数博客文章说使用{}会性能更好,到底怎么样可以从源码中看看(其实可以大致猜测一下,哪怕代码玩出花来,也要找到每个{}的位置进行替换吧)。测试代码:org.slf4j.helpers.MessageFo...原创 2018-11-04 22:09:16 · 23593 阅读 · 5 评论 -
58到家数据库30条军规解读
原文地址:http://chuansong.me/n/1574852446614军规适用场景:并发量大、数据量大的互联网业务军规:介绍内容解读:讲解原因,解读比军规更重要 一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险...转载 2018-09-22 20:56:15 · 346 阅读 · 0 评论 -
分页优化
原文地址:https://www.cnblogs.com/waterystone/p/9392421.html一、传统分页Select * from table limit 10000,10;二、LIMIT原理Limit 10000,10 偏移量越大则越慢;三、推荐分页3.1 1 2 Select * from table WHE...转载 2018-09-13 16:16:16 · 289 阅读 · 0 评论 -
QPS、UV、RT、PV、TPS
QPS每秒查询数,可以看成是最大吞吐量。qps很大程度上代表了系统业务的繁忙程度,每次请求的背后,可能对应着多次磁盘I/O,多次网络请求,多个CPU时间片等。我们通过qps可以非常直观的了解当前系统业务情况,一旦当前qps超过所设定的预警阀值们可以考虑增加机器对集群扩容,一面压力过大导致宕机,可以根据前期的压力测试得到估值,再结合后期综合运维情况,估算出阀值。QPS = req/sec = ...原创 2018-09-04 12:40:49 · 645 阅读 · 0 评论