美文网首页
缓存性能

缓存性能

作者: alue | 来源:发表于2024-09-14 21:16 被阅读0次

下面这段性能测试很有启发性,数据的初始化准备如下:

// setup:
const KB = 1024
const MB = 1024 * KB
 
// These are approximate sizes to fit in those caches. If you don't get the
// same results on your machine, it might be because your sizes differ.
const L1  = 256 * KB
const L2  =   5 * MB
const L3  =  18 * MB
const RAM =  32 * MB
 
// We'll be accessing the same buffer for all test cases, but we'll
// only be accessing the first 0 to `L1` entries in the first case,
// 0 to `L2` in the second, etc.
const buffer = new Int8Array(RAM)
buffer.fill(42)
 
const random = (max) => Math.floor(Math.random() * max)

简单的说,就是准备了一个大数组buffer,然后随机访问其中的某个元素。
分为四种情况,每种情况只是随机的范围有区别:

// 1. L1
let r = 0; for (let i = 0; i < 100000; i++) { r += buffer[random(L1)] }
// 2. L2
let r = 0; for (let i = 0; i < 100000; i++) { r += buffer[random(L2)] }
// 3. L3
let r = 0; for (let i = 0; i < 100000; i++) { r += buffer[random(L3)] }
// 4. RAM
let r = 0; for (let i = 0; i < 100000; i++) { r += buffer[random(RAM)] }

性能结果如下图:


可以看出,如果限制数组的访问范围在很小的区域,js的执行性能会好很多。

这个原因也不难理解,因为js引擎会利用缓存技术,每次缓存加载数据,都不简单的加载目标数据,而是会连带目标数据周边的数据一同加载。如果下一次访问的数据恰好在缓存中,那么缓存命中,避免了额外的IO操作,性能就会得到提升。

现在计算机都有多级缓存(L1/L2/L3),数据集合越小,在前级命中的概率越高,性能也就越好。

相关文章

  • 简述http缓存

    简介 网站性能第一优化定律:优先考虑使用缓存优化性能。合理的使用缓存,对网站的性能优化的意义重大。以下对于缓存,都...

  • CPU缓存和内存屏障

    CPU性能优化手段 缓存 运行时指令重排 缓存 为了提高程序运行的性能,处理器大多会利用缓存来提高性能,而避免访问...

  • 架构解读

    高性能架构 关注点 性能指标,性能测试,性能优化 具体优化内容如概述所示 如何合理使用缓存 分布式缓存架构 采用...

  • 缓存中间件实践 - 缓存和数据库一致性更新原则

    1. 缓存和数据库一致性更新是什么? 1.1 缓存和数据库的关系 介绍 缓存:高性能产品 数据库:性能低产品 缓存...

  • Laravel性能优化整理

    Laravel性能优化 配置各种缓存

  • CPU缓存及内存屏障

    CPU 性能优化手段 - 缓存 CPU 缓存模型: 多级缓存 L1 Cache (一级缓存) CPU第一级高速缓存...

  • 浏览器强缓存和协商缓存

    HTTP强缓存和协商缓存 HTTP基于缓存策略三要素分解法 从性能优化的角度看缓存 https://github....

  • 可能是北半球iOS最牛的开发者---YY大神

    - YYModel — 高性能的 iOS JSON 模型框架。- YYCache — 高性能的 iOS 缓存框架。...

  • 搞懂Redis,这一篇就够了

    1、缓存带来的好处: 高性能 大量相同的请求过来,每次查询mysql耗时600ms,如果用缓存耗时20ms,性能提...

  • memcached和msm实战详解

    一,Memcached概念 memcached:高性能key/value数据缓存,旁挂式缓存 二,Memcache...

网友评论

      本文标题:缓存性能

      本文链接:https://www.haomeiwen.com/subject/cqabljtx.html