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

    Pool:小对象缓存or复用

    对象复用 使用链表作为pool来保存要复用的对象。

    76470发布于 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的动态加载、缓存、更新以及复用(四)

    6、sonLoad()则会加载Nature.Adapter.js,实现复用,就是让子页面可以调用top页面里的js。   简单的说呢就是这样。详细说的话还有很多细节。目前boot.js基本稳定。 4 5 by 金色海洋 2013-7-11 6 7 */ 8 9 //1毫秒后开始加载 js文件 10 window.setTimeout(function() { 11 12 //判断有无配置信息————没有的话,加载且缓存 13 //判断有无js文件版本号——没有的话,加载且缓存 14 //加载Nature.LoadJs.js,开始加载其他js 15 因为涉及到复用,所以要new一下。 23 24 if (typeof top.Nature == "undefined") { 25 //没有配置信息,加载。 4 5 by 金色海洋 2013-7-11 6 7 2014-06-07 移植 8 9 */ 10 11 var Nature = {};/* 定义 一个很大的对象

    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的原生集成,这些组合起来确实能解决实际问题。

    56510编辑于 2025-12-24
  • 来自专栏明明如月的技术专栏

    Java 8 Stream简介和“复用”的问题

    参考资料  :《Java 8 in Action: Lambdas, streams, and functional-style programming》 本文先对Stream作基本介绍,然后介绍如何“ 复用”stream。 2 、Stream“复用” 有的文章说“Stream执行终端操作后就被消费掉了,无法复用(这样说没错)”,给出一些曲折而且并非复用的方式,本质上还是重新创建Stream,如 https://blog.csdn.net /yiifaa/article/details/78118342 其实实现“复用”(对某个集合多次执行stream操作,请注意这并不是真正的复用), 但是我们要搞清楚自己的目的是啥,如果你的目的是对 集合多次使用 其他更多详细内容参考: 1、《Java 8 in Action: Lambdas, streams, and functional-style programming》 2、http://www.importnew.com

    1.3K30发布于 2021-08-27
  • 来自专栏波波烤鸭

    shiro教程8(缓存管理)

    缓存 为什么要使用缓存   在没有使用缓存的情况下,我们每次发送请求都会调用一次doGetAuthorizationInfo方法来进行用户的授权操作,但是我们知道,一个用户具有的权限一般不会频繁的修改, 也就是每次授权的内容都是一样的,所以我们希望在用户登录成功的第一次授权成功后将用户的权限保存在缓存中,下一次请求授权的话就直接从缓存中获取,这样效率会更高一些。 xml version="1.0" encoding="UTF-8"? 3 LRU,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。 当调用清空缓存方法后,再次请求的时候因为缓存已经空了,所以会再次授权, 场景: 权限修改生效后,立即刷新清空缓存,则可以实现用户不退出生效新的权限

    1.4K60发布于 2019-04-02
  • 来自专栏linux教程

    CentOS 8 清除 DNS 缓存

    nscd(Name Service Cache Daemon)是一种能够缓存 passwd、group、hosts 的本地缓存服务,分别对应三个源 /etc/passwd、/etc/hosts、/etc 这里利用 nscd 的 hosts 缓存服务来实现 清除 CentOS 8 Linux 下的 DNS 缓存。 清缓存命令: 有可能nscd没装,下面讲解一下,安装,启动,清缓存的命令 1. 启动nscd 服务后,清缓存 开启 nscd 的 hosts 缓存服务后,每次内部接口请求不会都发起 dns 解析请求,而是直接命中 nscd 缓存散列表,从而获取对应服务器 ip 地址,这样可以在大量内部接口请求时减少接口的响应时间

    4.1K10编辑于 2023-04-26
  • 来自专栏AI前沿技术

    SGLang 用基数树复用 KV 缓存

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

    25210编辑于 2026-01-13
  • 来自专栏存储公众号:王知鱼

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

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

    53210编辑于 2025-11-20
  • 来自专栏更流畅、简洁的软件开发方式

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

    由这个服务实现加载js、更新js、加载顺序(依赖),还有复用。   如果我们要做五个项目,每个项目都是一个独立的站点,那么对于共用的js文件是怎么处理的呢?1、每个项目站点都放一份,引用自己站点里的。

    2.5K80发布于 2018-02-08
  • 来自专栏李家杂货铺zi

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

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

    1.7K20编辑于 2023-03-21
  • 复用

    一、代码复用的意义 代码复用是面向对象编程(OOP)的魅力之一。 二、Java 中代码复用的两种方式 组合(Composition) 方式:在新类中创建现有类的对象。 特点:通过这种方式复用的是现有代码的功能,而不是其形式。 ,是代码复用的一种方式。 功能复用 Computer的showConfig()方法通过调用motherboard.getInfo()和cpu.getInfo(),复用了主板和 CPU 类的功能,而无需关心它们的内部实现。 继承是面向对象语言的核心特性,允许新类(子类)复用现有类(父类)的属性和方法。

    34400编辑于 2025-06-24
  • 来自专栏猿计划

    频分复用、时分复用、码分复用的基本原理

    (1)频分复用 把一个物理信道划分为多个逻辑信道,各个逻辑信道占用互不重叠的频带,相邻信道之间用“警戒频带”隔离,以便将不同路的信号调制(滤波)分别限制在不同的频带内,在接收端再用滤波将它们分离。 (2)时分复用 按时间划分不同的信道,每一个时分复用的用户在每一个TDM帧中占用固定序列号间隙,复用的所有用户是在不同时间占用同样的频带宽度。 (3)码分复用 每一个用户可以在同样的时间使用同样的频带进行通信,由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。

    4.2K10发布于 2020-07-29
  • 来自专栏全栈程序员必看

    多路复用_java多路复用

    目录 1、说明 1.1、多路复用的几种机制 2、函数简介 2.1、select 2.2、poll 2.3、epoll 2.3.1、epoll_create 2.3.2、epoll_ctl 2.3.3 我们都知道,linux下一个线程默认所占的内存是8M(可以使用ulimit -s查看),那么加入,1000个socket连接,建立1000线程,光线程的开销就高达8G多,更遑论其他业务还要使用内存了。 针对这种情况,就需要采用多路复用机制,所谓多路复用,就是一个进程见识多个socket描述符,一旦某个socket描述符就绪(可读写或者异常)了,就会通知应用程序,进行相应的处理。 1.1、多路复用的几种机制 目前的多路复用机制有三种,select、poll 和 epoll。

    88520编辑于 2022-09-21
  • 来自专栏Redis原理与应用

    Redis应用—8.相关的缓存框架

    xml version="1.0" encoding="UTF-8" ? xml version="1.0" encoding="UTF-8"? xml version="1.0" encoding="UTF-8"? xml version="1.0" encoding="UTF-8" ? xml version="1.0" encoding="UTF-8"?

    43900编辑于 2025-03-07
  • 来自专栏亿源通科技HYC

    波分复用(WDM)系统中的复用复用器件(MUXDEMUX)

    根据传输信号的方向,WDM可用作复用或解复用。 30.jpg 复用器MUX 合波器MUX的主要作用是将多个信号波长合在一根光纤中传输。 多路复用器(Demux)是一种对多路复用器进行反向处理的设备。 性能参数 复用/解复用器件(MUX/DEMUX)是WDM中的关键器件,它们影响着整个系统的性能。复用/解复用器件主要的性能参数有那些? 2.信道数和信道间隔 信道数指波分复用/解复用器可以合成或分离的信道的数量,这个数字可以从4到160不等,通过增加更多的频道来增强设计, 常见的信道数有4、8、16、32、40、48等。 31.jpg 除了以上,当然还有其它影响复用/解复用器件的性能参数,如工作温度、带宽等。通常地,复用和解复用器件组合成一个设备,允许该设备同时处理输入和输出信号。 或者复用器的单点输出可通过单个通道连接到解复用器的单点输入。但更多的是复杂的组合设备适用双向传输。

    2.5K40发布于 2019-07-26
  • 来自专栏phodal

    停止复用

    复用及其粒度 如果模块过于细粒度和轻量级,那么我们将面临模块和上下文依赖的爆炸。 复用可能导致的最大问题是,我们划分的所有边界都失效了。 代码复用危机 过去,我们的复用方式是,模块复用、包复用,整个系统间的关系相当的混乱。明明我们只是依赖于一个内部包里的几个函数 ,它们可能就是一两百行的代码,然而我们要引入一个几 M 的包。 而现在,我们开始考虑了微服务的复用。 微服务复用危机 同样的,明明只是一个简单的功能、API。故事是很相似的,我们选择了已有的其它团队的接口,这样一来就不用花费时间写这个接口了。一切都很完美。 对于代码级来说,我们复用三方接口时,一旦三方接口发生过变化,封装便是我们的防腐方式。 对于微服务来说,我们复用三方接口时,一旦三方接口发生过变化,封装、BFF 便是我们的防腐方式 ? 我的意思是,不要在设计阶段,过于草率地决定:它们就应该复用。 阶段性检视。当复用带来复杂度时,重新梳理一下问题发生的原因。 事实上,看看标题就够了。

    2.6K40发布于 2020-06-30
  • 来自专栏全栈程序员必看

    ViewPager复用

    代码很简单,记录一下 主要是用LinkedList在destroyItem中添加移除的View,在instantiateItem中复用移除的View。 R.layout.item_pager, null); str = ""; } else{ str = "复用

    56530编辑于 2022-09-15
  • 来自专栏猿人工厂

    猿思考系列8——缓存的套路也就这些

    哈哈,缓存这个话题比较热,有太多的文章聊过它了。今天我们也聊聊缓存,不过可能会有些不一样的地方吧。缓存是什么?缓存其实就是计算结果。那缓存有什么作用? 分布式缓存的数据会分布到不同的缓存节点上,每个缓存节点缓存的数据依然是有容量限制的。一般来说为了方便访问这些数据节点,会假如一个代理机制去访问和识别节点。 一旦Master节点失效,可以通过代理直接切换到Slave 节点保证缓存的正常工作。每个缓存节点还可以提供缓存过期的机制,也可以会把数据可靠性要求相对较高的缓存保存到文件上,以免丢失。 一般来讲,缓存的失效问题,有以下几个常见的方面: 缓存雪崩:缓存同时失效被清除,缓存未更新,请求无法命中缓存,如果要求强制拿到数据,请求会打到数据库。如果频繁发生,数据库压力也大,应用很快挂掉的。 这就是缓存击穿,和缓存雪崩的区别在于击穿是只针对某一缓存缓存,雪崩是针对多个缓存。解决这个问题只用保障在同一时刻,一个key只有一个线程在读/写就好了。

    27930发布于 2020-07-28
  • 来自专栏.Net Core技术分享

    Razor代码复用

      上一篇博客中讲解了Razor语法,在这一篇博文中,我会和大家共同学习在Razor中如何复用代码。 1.布局(Layout)复用   Layout的使用,就像WebForm的模板页一样,甚至会更加简单,更加方便和明了。    DOCTYPE html> <html lang="en"> <head> <meta charset="utf-<em>8</em>"/> <title>测试网站 - @Page.Title 2.页面(Page)复用   在Razor中,我们可以轻松的在页面中输出另一个页面的HTML代码:

    @RenderPage("/SubPage.cshtml")

      SubPage ) @RenderSection("footer"); </body>   需要说明一点,虽然没有找到相应的文档,但我在测试的时候,只发现了这一种用法…… 4.Helper复用

    1.3K10发布于 2019-09-26
领券