作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


做了一个 vm-storage 数据文件 merge 的工具。测试的时候发现 decimal.CalibrateScale() 这个函数特别慢。

做了一个小优化,用查表法代替循环的乘法,性能提升明显。

Benchmark 测试:

  • 优化前:49633 ns/op
  • 优化后:9146 ns/op

通过 180mb 的数据文件来测试,profile 也显示效果明显:

  • 优化前:

  • 优化后:

代码已经 pull request 到 VictoriaMetrics 的 github, 请看:https://github.com/VictoriaMetrics/VictoriaMetrics/pull/5672

几点感受:

1.vm 目前的性能已经非常优异,如果再深入的优化一轮,性能还可以继续提升一大截;

2.作为服务器软件,空间换时间是经典手段,特别是这种数据量特别大的情况;

3.对于当前这个对很大数组进行计算的场景,采用 simd 优化能更进一步提升性能。(后续有时间会做一轮)

【VictoriaMetrics】一个小优化:循环改查表,性能提升56.48 倍的更多相关文章

  1. 【转】Vim速查表-帮你提高N倍效率

    Vim速查表-帮你提高N倍效率 转自:https://www.jianshu.com/p/6aa2e0e39f99 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. ...

  2. 用一个性能提升了666倍的小案例说明在TiDB中正确使用索引的重要性

    背景 最近在给一个物流系统做TiDB POC测试,这个系统是基于MySQL开发的,本次投入测试的业务数据大概10个库约900张表,最大单表6千多万行. 这个规模不算大,测试数据以及库表结构是用Dump ...

  3. oracle 11g亿级复杂SQL优化一例(数量级性能提升)

    自从16年之后,因为工作原因,项目中就没有再使用oracle了,最近最近支持一个项目,又要开始负责这块事情了.最近在跑性能测试,配置全部调好之后,不少sql还存在性能低下的问题,主要涉及执行计划的不合 ...

  4. KMP算法的正确性证明及一个小优化

    直接把作业帖上来是不是有点不太公道呀... 无所谓啦反正各位看着开心就行 KMP算法 对于模式串$P$,建立其前缀函数$ N$ ,其中$N [q] $ 表示在$P$中,以$q$位置为结束的可以匹配到前 ...

  5. FTP没权限直接删除目录,写的一个小工具循环删除

    $path = '/var/www/html/Runtime/'; $ite = new RecursiveDirectoryIterator($path); foreach (new Recursi ...

  6. SPFA 小优化*2

    /* bzoj 2763 SPFA小优化 循环队列+SLF 顺面改掉自己之前手打qeueu的坏毛病*/ #include<iostream> #include<cstring> ...

  7. AVX图像算法优化系列二: 使用AVX2指令集加速查表算法。

    查表算法,无疑也是一种非常常用.有效而且快捷的算法,我们在很多算法的加速过程中都能看到他的影子,在图像处理中,尤其常用,比如我们常见的各种基于直方图的增强,可以说,在photoshop中的调整菜单里8 ...

  8. 「mysql优化专题」单表查询优化的一些小总结,非索引设计(3)

    单表查询优化:(关于索引,后面再开单章讲解) (0)可以先使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的.这可以帮我们分析是查询语句或是表结构的性能瓶颈. (1)写sql ...

  9. C#,Java,C -循环冗余检验:CRC-16-CCITT查表法

    C#代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

  10. 用MATLB仿真一个单闭环控制量,同时还存在两个开环控制变量的阶跃响应曲线。(自动控制方法是PID中的P控制。通过查表法直接给开环参数稳态最佳的大小)

    实际项目背景:甘肃省,航天510所的LIPS100电推力器.一共有三个控制变量,开环控制变量是:Ia(阳极电流).mmrf(阳极主流率) 这个阳极主流率是阀门变量,不能够突变,模拟用(大学一年级课,电 ...

随机推荐

  1. 列存Delta表是个什么东东

    摘要:本文从delta表的概念.来历.用法.开启后的影响,delta表数据转移到主表几个方面做了详细的介绍. 本文分享自华为云社区<GaussDB(DWS) 列存delta表的简单介绍>, ...

  2. 信创就用国产的生态,Solon v2.6.4 发布

    Solon 是什么框架? Java 新的"生态级"应用开发框架.从零开始构建,有自己的标准规范与开放生态(历时六年,具备全球第二级别的生态规模). 相对于 Spring,有什么特点 ...

  3. 面对科技公司的制裁,俄罗斯放出封印7年的神兽:RuTracker

    大家好,我是DD! 最近俄乌冲突引发的科技公司站队,Oracle.微软.三星等全球知名科技公司都开始对俄罗斯实施制裁与封锁.就连崇尚自由的开源社区GitHub也发文会严格限制俄罗斯获得维持其咄咄逼人的 ...

  4. Seata是什么?一文了解其实现原理

    一.背景 随着业务发展,单体系统逐渐无法满足业务的需求,分布式架构逐渐成为大型互联网平台首选.伴随而来的问题是,本地事务方案已经无法满足,分布式事务相关规范和框架应运而生. 在这种情况下,大型厂商根据 ...

  5. 师爷,翻译翻译什么叫AOP

    张麻子:汤师爷,翻译翻译,什么叫AOP? 汤师爷:这还用翻译. 张麻子:我让你翻译给我听,什么叫AOP? 汤师爷:不用翻译,切面编程就是AOP啊. 黄四郎:难道你听不懂什么叫AOP? 张麻子:我就想让 ...

  6. OpenSCA受邀出席2023 Open Compliance Summit

    近日,由Linux基金会主办的2023 Open Compliance Summit(开放合规峰会,简称OCS)在日本东京隆重召开.悬镜安全旗下全球极客开源数字供应链安全社区OpenSCA受邀参与,O ...

  7. vue学习笔记 十八、父子组件相互传递参数

    系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...

  8. oppo和海康嵌入式软件工程师面经总结

    目录 海康 一面(3.23,35min) 自我介绍 项目介绍 你做的这个项目遇到了那些问题,如何解决的? 移植uboot,只做了移植吗? 用的那个文件系统? 移植过程中,网卡驱动做了那些工作? 写过那 ...

  9. ElementUI - <el-table> 表格 selection 设置的复选框禁止选中某些行

    https://blog.csdn.net/weixin_44198965/article/details/119026054

  10. canvas验证码 uni-app/小程序

    1 <template> 2 <view class="logo-wrapper"> 3 <view class="logo-img&quo ...