首页 > 其他分享 >【VictoriaMetrics】一个小优化:循环改查表,性能提升56.48 倍

【VictoriaMetrics】一个小优化:循环改查表,性能提升56.48 倍

时间:2024-01-24 15:59:28浏览次数:44  
标签:查表 56.48 性能 VictoriaMetrics 提升 优化 op

作者:张富春(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 优化能更进一步提升性能。(后续有时间会做一轮)

标签:查表,56.48,性能,VictoriaMetrics,提升,优化,op
From: https://www.cnblogs.com/ahfuzhang/p/17984844

相关文章

  • YJV电缆载流量速查表
    截面(mm²)30℃载流量(A)35℃载流量(A)40℃载流量(A)2.532302844240386545149107572681610096912512712111535158151143501921841747024623622395298286271120346332314150399383363185456......
  • git常用命令速查表
    群友分享的速查表: __EOF__作者:持之以恒(韧)关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等......
  • Prometheus 与 VictoriaMetrics对比
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享时序数据库有很多,比如Prometheus、M3DB、TimescaleDB、OpenTSDB、InfluxDB等等。Prometheus和VictoriaMetrics是开源的时间序列数据库,在复杂的环境中提供了强大的监控和警报解决方案。然而,它们的设计......
  • VictoriaMetrics的指标流聚合能力应用
    原文出自:https://blog.mickeyzzc.tech/posts/opentelemetry/stream-metrics-one/ 社区VM对指标流聚合能力分析与问题一、VictoriaMetrics开源项目的原生能力VictoriaMetrics项目中的流聚合能力是从1.86版本开始整合到vmagent的,具体可参考: https://github.com/VictoriaMetrics/Vic......
  • 【一个小发现】VictoriaMetrics 中 vmselect 的 `-search.denyPartialResponse` 选项
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯一直以为vmselect的-search.denyPartialResponse选项是在vm-storage超时的时候返回预测的结果。实际测试是这样的:当vm-select对应的后端有多个vm-storage时,......
  • 【小测试】玩一玩 VictoriaMetrics 的 force merge
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯我是期望通过备份来建立VictoriaMetrics的历史节点,然后历史节点通过forcemerge,让磁盘空间更小,压缩率更高,查询更快。启动历史节点后,我在vm-storage的http端口......
  • 非查表方式计算NTC温度
    1floatGetTempera2(u16ad)2{3floatR2=36.5;//分压电阻36.5K4floatB=3950.0;5floatR25=100.0;//100kOhm67floatR1=R2*ad/(4095.0-ad);8floatT1=1.0/(log(R1/R25)/B+1/298.15);9returnT1-273.15f;10}  ......
  • 【代码分享】使用 avx2 + 查表法,优化凯撒加密
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯接上一篇:【代码分享】使用avx512+查表法,优化凯撒加密好不容易捣鼓出来了avx512指令集的查表法代码,可是部署的时候发现服务器不支持avx512指令集。终于,avx2......
  • 不管表里的内容 仅查表的结构: desc 表名;
    对比包含表中数据 ......
  • prometheus远程永久存储方案VictoriaMetrics 部署单机版
    1、单机版下载地址:https://github.com/VictoriaMetrics/VictoriaMetrics注:集群版选择cluster版本2、下载解压得到二进制文件tar-xfvictoria-metrics-linux-amd64-v1.93.1.tar.gz3、配置服务启动文件cat/etc/systemd/system/victoria-metrics.service[Unit]Description=V......