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

    Pool:小对象缓存or复用

    对象复用 使用链表作为pool来保存要复用的对象。 sPoolSize--; return m; } } return new Message(); } 案例2

    77770发布于 2018-01-08
  • 来自专栏更流畅、简洁的软件开发方式

    js的动态加载、缓存、更新以及复用(三)

    总体思路 1、  建立一个js服务,该服务实现通用js文件的加载、依赖、缓存、更新以及复用2、  各个项目如果使用通用js,可(bi)以(xu)使用js服务实现加载。 因为Js服务会把各种通用js文件一次性的加载到top页面,然后利用“复用”的方式,让其他页面可以直接使用。 2、  然后看看是否有缓存信息。 3、  如果有缓存信息,那么说明这是子页。调用适配函数,让子页可以访问top页里加载的js文件。然后看看子页里有没有jsReady函数,如果有则调用。 8、 为啥要缓存?     不想每个页面都去加载固定不变的东东,比如配置信息和通用函数。虽然浏览器在加载的时候会启用缓存,但是不太好控制。客户端也可以强制不用缓存。 10、  看你写了好几次复用,到底是啥?     就是让子页用top页里加载好的js。 11、  如何避免各个文件里的函数名称冲突?     

    7.1K90发布于 2018-02-08
  • 来自专栏更流畅、简洁的软件开发方式

    js的动态加载、缓存、更新以及复用(四)

    2、然后在boot.js里面动态加载 bootLoad.js。 6、sonLoad()则会加载Nature.Adapter.js,实现复用,就是让子页面可以调用top页面里的js。   简单的说呢就是这样。详细说的话还有很多细节。目前boot.js基本稳定。 1 /* 2 3 加载js脚本的一种解决方法。 因为涉及到复用,所以要new一下。 23 24 if (typeof top.Nature == "undefined") { 25 //没有配置信息,加载。 : "2,14", //统一管理数据连接标识 20 21 dbid_236SysLog: "2,6", //wcf日志数据库 22 23 dbid_Loan

    7.5K80发布于 2018-02-08
  • 来自专栏DeepHub IMBA

    LMCache:基于KV缓存复用的LLM推理优化方案

    LMCache针对TTFT提出了一套KV缓存持久化与复用的方案。项目开源,目前已经和vLLM深度集成。 原理 大模型推理有个特点:每次处理输入文本都要重新计算KV缓存。 KV缓存可以理解为模型"阅读"文本时产生的中间状态,类似于做的笔记。 问题在于传统方案不复用这些"笔记"。同样的文本再来一遍,整个KV缓存从头算。 LMCache的做法是把KV缓存存下来——不光存GPU显存里,还能存到CPU内存、磁盘上。下次遇到相同文本(注意不只是前缀匹配,是任意位置的文本复用),直接取缓存,省掉重复计算。 LMCache和vLLM v1集成得比较深,支持跨设备共享KV缓存、跨节点传递等特性。生产环境里可以配合llm-d、KServe这些工具用。 小结 KV缓存复用这个思路已经是基本操作了,但LMCache把它做得比较完整:多级存储、任意位置匹配、和vLLM的原生集成,这些组合起来确实能解决实际问题。

    70510编辑于 2025-12-24
  • 来自专栏PM吃瓜(公众号)

    缓存技术 2

    这是直接读取数据库的数据 array(10) { [0] => array(12) { ["id"] => string(1) "1" ["catid"] => string(2) ["ord"] => string(1) "2" ["hits"] => string(1) "1" ["status"] => string(1) "1" } 第二次访问 array(10) { [0] => array(12) { ["id"] => string(1) "1" ["catid"] => string(2) "13 "] => string(1) "2" ["hits"] => string(1) "1" ["status"] => string(1) "1" } 说明:第一次运行时 ('静态规则', '有效期', '附加规则'), // 定义格式2 字符串方式 '静态地址' => '静态规则', ) 定义格式1采用数组方式 便于单独为某个静态规则设置不同的有效期,定义格式2

    94920发布于 2019-08-13
  • 来自专栏AI前沿技术

    SGLang 用基数树复用 KV 缓存

    SGLang使用程序化的语言模型技术,并利用基数树和压缩有限状态机很好的解决了KV缓存复用和结构化输出问题,本文主要围绕KV缓存复用讨论以下问题: 1)语言模型程序的定义和特点 2)结合持续批处理,如何使用基数树复用 此时的重点是复用了上轮历史对话的KV缓存,减少了计算量。第四时刻(4)新一轮对话开始,称之为R2,只用系统的提示词可以共用,在b结点处生出新的分支d,用户新输入作为边。 第五时刻(5)新对话R2开始多轮,需要清理KV缓存,根据LRU规则,将R1对话的最近一轮KV缓存结点c及其边清除。 优势: • 实时性与复用率平衡:持续批处理保证新请求及时入队、完成请求及时出队,而基数树的实时查询确保每次重组 batch 时,优先选择能复用最多连续缓存的请求; • 避免缓存碎片化:通过基数树的路径管理 ,KV 缓存始终以连续前缀块的形式被复用,减少碎片化缓存导致的内存浪费; 总结: SGLang 的缓存感知调度策略核心目标是通过最大化 KV 缓存复用率,降低内存读写开销,从而提升大模型推理的吞吐量与响应速度

    36910编辑于 2026-01-13
  • 来自专栏TA码字

    Tomcat NIO(2)-epoll多路复用

    在上一篇文章里我们介绍了 tomcat io 主要包含那些 items,在这里我们主要介绍tomcat io 的基础-多路复用。 tomcat 服务器(tomcat7以上)默认使用 java NIO 模型,NIO 不仅仅需要 java 语言上的支持,同时还离不开各种操作系统对于多路复用的支持(linux,windows,mac 等等 对于 linux 操作系统,IO 多路复用使用的是 epoll 方式,对于 windows 操作系统中 IO 多路复用使用的是 iocp 方式,对于 mac 操作系统 IO 多路复用使用的是 kqueue 在介绍 epoll 多路复用之前,我们先简单描述一下传统 IO,也就是 BIO(block IO),从而和 epoll IO 有一个大致的对比。

    2.7K41发布于 2020-07-13
  • 来自专栏stark张宇

    Redis高可用高性能缓存的应用系列2 - 事务机制和IO多路复用、持久化

    概述Redis高可用高性能缓存的应用系列的第二篇,主要介绍Redis事务机制和IO多路复用、和持久化的知识点。 Redis事务机制Redis事务机制,和Mysql有大的不同,分为4步进行执行:1.事务提交前,先检查命令语法是否正确2.提交命令后,一定会被执行3.有命令报错也会执行完4.不能回滚Redis事务和批量操作的区别 redis-cli> multiOKredis-cli> set name "stark张宇"QUEUEDredis-cli> lpop nameQUEUEDredis-cli> exec1) OK2) WRONGTYPE Operation against a key holding the wrong kind of valueI/O多路复用图片首先要说明一点,redis采用单线程处理请求, 假设服务器是 自动触发在m秒内,执行命令最终执行的是bgsavebgsave的执行过程:1)首先,redis主进程fork出子进程,2)子进程会共享子进程的数据,并把主进程设置成read only,然后开始执行持久化的操作

    37040编辑于 2023-04-05
  • 来自专栏前端西瓜哥的前端文章

    聊聊 HTTP2 的多路复用

    今天我们来聊聊 HTTP/2 的多路复用。 HTTP/1 下的请求,并不能很好地地利用带宽:一个 TCP 连接同时只能有一个 HTTP 请求和响应。 为了解决这个问题,HTTP/2 使用了 多路复用。 HTTP/2 引入了流(stream)和帧(frame)的概念。 HTTP/2 会将所有 HTTP 请求打散成帧,在一个 TCP 连接上做并发请求,充分利用 TCP 带宽。现在浏览器对于 HTTP2,只会建立一个 TCP 连接,减轻了服务端不小压力。 例子 我们举个例子讲解 HTTP/1 升级为 HTTP/2 后利用多路复用带来的优势。 假设依次请求一个很大的 JS 文件,和一个很小的 CSS 文件。 结尾 HTTP/2 的多路复用能够解决 HTTP 队头阻塞问题,更充分地利用 TCP 带宽。

    1.5K10编辑于 2022-08-26
  • 来自专栏存储公众号:王知鱼

    AI大模型推理优化:KV缓存的“组合式复用

    在LLM的自回归特性中,高效复用“KV缓存”是降低成本、提升速度的关键。 现状: 目前行业内主流的KV缓存复用技术是“基于前缀的复用”(Prefix-Based Reuse)。 因此,它只需要在KV缓存的末尾追加新内容即可,复用 Prefix 的KV缓存,节约计算资源。 引出问题: 在这些场景下,传统“基于前缀”的KV缓存复用方法失效了(因为前缀不再固定不变,即“单体式KV缓存复用无法保证”)。 这使得上一张PPT提到的“单体式/整体式KV缓存复用”(即简单的基于前缀的复用)变得无效。

    61810编辑于 2025-11-20
  • 来自专栏Node.js开发

    白话http2的多路复用

    题图 From Bing By Clm 上篇文章介绍了http1.1相对于http2的一些不足,本篇文章来聊一聊http2的一些优点,但是http2的优点比较多,并且需要结合源码展示,所以关于htt2 的一些特点,我打算拆分成多篇文章,本篇文章只讨论http2实现的多路复用功能。 request,这不同于http1.1的pepeline,http2的多路复用,对于request的响应并不会因为上一个request的响应未完成而阻塞,http2彻底解决了http层面的队头阻塞。 streamid自动还原数据,这样就实现了在一个TCP连接通道中的流式传输,多个request都会复用这个TCP通道,实现了高效的复用。 总结一下:上文我们简单介绍了http2的多路复用功能,简单来说有如下几个特点: 1、http2针对同一个域名只建立一个TCP链接,所有http请求都通过这个TCP链接来完成。

    9.2K41发布于 2020-01-14
  • 来自专栏JavaEdge

    大道缓存1 缓存特征2 缓存介质3 缓存分类和应用场景缓存实战

    2 Mtconfig实现图 这类缓存实现,优点是能直接在heap区内读写,最快也最方便;缺点同样是受heap区域影响,缓存的数据量非常有限,同时缓存时间受GC影响。 image 图4 缓存数据流转图(L1:本地内存层;L2:Terracotta服务节点层) Ehcache的配置使用如下: <ehcache> <! 从网络I/O模型上看,Redis使用单线程的I/O复用模型,自己封装了一个简单的AeEvent事件处理框架,主要实现了epoll、kqueue和select。 image 图13 域缓存处理图 如图13,按旧的方案,当cache0发送变化时,为了保持信息的实时更新,需要手动删除cache1、cache2、cache3等相关处的缓存数据。 域已发生更新,自动影响cache1、cache2、cache3等处的缓存数据。

    1K21发布于 2018-09-20
  • 来自专栏DannyHoo的专栏

    cell高度的缓存2——利用模型属性缓存

    article/details/53204196 之前的一篇文章(http://blog.csdn.net/u010105969/article/details/53203860)介绍了利用字典缓存 我们如果利用已有的模型进行cell高度的缓存会更简单些。 我们要利用的模型是与cell一一对应的模型。在该模型中增添一个cellHeight的属性用于记录cell的高度。

    66320发布于 2018-09-13
  • 来自专栏更流畅、简洁的软件开发方式

    js的动态加载、缓存、更新以及复用(二)恼人的命名冲突

    由这个服务实现加载js、更新js、加载顺序(依赖),还有复用。   如果我们要做五个项目,每个项目都是一个独立的站点,那么对于共用的js文件是怎么处理的呢?1、每个项目站点都放一份,引用自己站点里的。 2、做一个独立的站点存放共用的js,然后其他的项目都统一到这里引用。我用的是第二个方法,你们呢?   突然想到一个问题,我们写js到底要达到什么目的(效果)?

    2.5K80发布于 2018-02-08
  • 来自专栏用户7873631的专栏

    yii2缓存Cache

    LoginForm; class IndexController extends \yii\web\Controller { public function actionSite() { //设置缓存 /*Yii::$app->cache->set("name",666); //获取缓存 echo Yii::$app->cache->get("name");*/ //删除缓存 Yii ::$app->cache->delete("name"); //获取缓存 echo Yii::$app->cache->get("name"); } }

    73910编辑于 2022-03-25
  • 来自专栏音视频开发技术

    FFmpeg封装格式处理2-解复用例程

    复用例程 解复用(demux),表示从一路输入中分离出多路流(视频、音频、字幕等)。 本例实现,将输入文件中的视频流和音频流分离出来,保存为单独的文件,所保存的文件是不含封装格式的裸流文件。 ? exit(1); } const char *input_fname = argv[1]; const char *output_v_fname = argv[2] 原因参考雷霄骅博士的文章: “使用FFMPEG类库分离出多媒体文件中的H.264码流” “最简单的基于FFmpeg的封装格式处理:视音频分离器简化版” 本节代码仅关注最简单的解复用功能,FLV、MP4

    1.3K30发布于 2019-04-02
  • 来自专栏韦东山嵌入式

    DshanMCU-R128s2 配置引脚复用

    引脚配置文件配置复用 R128 平台使用 sys_config.fex 作为引脚配置文件,他会在打包时打包编译进入系统,在系统运行时会解析并配置,系统解析 sys_config.fex 的驱动配置位于 对于配置引脚复用,只需要修改 board\r128s2\{PROJECT}\config\sys_config.fex 文件即可。 = port:PB3<1><default><1><1> [daudio0] 数字音频配置 配置项 配置项含义 i2s_mclk I2S MCLK 引脚配置 i2s_bclk I2S BCLK 引脚配置 i2s_lrck I2S LRCK 引脚配置 i2s_dout0 I2S DOUT0 引脚配置 i2s_din0 I2S DIN0 引脚配置 示例 [daudio0] i2s_mclk = port:PA23<2><0><1><default> i2s_bclk = port:PA20<2><0><1><default> i2s_lrck

    36410编辑于 2023-12-23
  • 来自专栏ICT售前新说

    计算虚拟化剖析2-内存复用技术

    2)虚机物理内存:在创建虚机的时候给虚机分配的内存,以后这台虚机所产生的内存数据会落地到给其分配的虚机物理内存空间之上,最终虚机物理内存还是要落地主机物理内存上,主机物理内存可以按需划分多个虚机物理内存 如给虚机1分配40G物理内存、给虚机2分配80G物理内存、给虚机3分配60G物理内存,这些虚机的物理内存都是要映射到同一主机的物理内存之上的,同时这些虚机在主机物理内存上拿走的物理内存空间并不连续。 有了以上基础铺垫我们再来看看内存复用技术。 常见的内存复用技术有 3类:内存气泡、内存置换、以及内存共享和写时复制。3中内存复用技术灵活搭配,运用好了可以把物理内存空间提升到150%。 这样通过把访问频率比较高的数据保留在物理内存中,访问频率比较低的数据移动到磁盘上去,可以节约出一部分内存空间,节约出的这部分内存可以分配给更多的虚机使用,通过这种内存置换的方式提高间接内存容量 (2) 3中内存复用技术用好了可以提升50%的物理内存空间。

    2.9K31发布于 2019-08-12
  • 复用

    一、代码复用的意义 代码复用是面向对象编程(OOP)的魅力之一。 二、Java 中代码复用的两种方式 组合(Composition) 方式:在新类中创建现有类的对象。 特点:通过这种方式复用的是现有代码的功能,而不是其形式。 ,是代码复用的一种方式。 功能复用 Computer的showConfig()方法通过调用motherboard.getInfo()和cpu.getInfo(),复用了主板和 CPU 类的功能,而无需关心它们的内部实现。 2.基类非静态成员初始化 按顺序执行基类的非静态字段赋值和非静态代码块({})。

    36700编辑于 2025-06-24
  • 来自专栏李家杂货铺zi

    频分复用、时分复用、码分复用和空分复用的区别

    此文的4种复用,均涉及到这4种资源。 频分复用复用的是时隙、空间和码,划分的是载波带宽(频率上区分信道),即在同一时隙、同一空间、同一个正交码的情况下,将一个载波带宽划分为相互区别的、多个不同频点的子信道,分别传送不同的信号。 时分复用复用的是频率、空间和码,划分的是时间(时间上区分信道),即在同一频率、同一空间和同一正交码的情况下,按照时间划分不同的子信道,分别传送不同的信号。 码分复用复用的是频率、空间和时隙,划分的是正交码(根据码区分信道),即在同一频率、同一空间和同一时隙的情况下,按照正交码划分不同的子信道(正交码可以区分出不同的信道),分别传送不同的信号。 图 1‑5 复用通路

    1.8K20编辑于 2023-03-21
领券