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

    Web 性能优化-缓存-DNS 缓存

    (3) 如果还没有拿到解析结果,操作系统就会把域名发送给本地区的域名服务器(LDNS),LDNS 通常由互联网服务提供商(ISP)提供,比如电信或者联通。 x-dns-prefetch-control" content="on" /> 通过 link 标签强制 DNS 预解析 <link rel="dns-prefetch" href="https://lz5z.com" /> (3) (4) HttpDNS DNS 请求使用的是 UDP 协议,虽然没有 TCP 三次握手的开销,但是可能导致弱网环境下(2G,3G)数据丢失的问题。 还记得之前Web 性能优化-页面重绘和回流(重排)中提到的 Google 1s 终端首屏渲染标准,假如 DNS 解析出现问题,那可能几秒甚至几十秒都首屏不了了。 DNS-over-HTTPS 参考资料 DNS域名解析过程 无线性能优化:域名收敛 提升页面访问速度的前端优化大法:DNS预解析 也谈 HTTPS - HTTPDNS + HTTPS

    3.7K11发布于 2021-11-26
  • 来自专栏乱码李

    Web 性能优化-缓存-HTTP 缓存

    浏览器缓存 HTTP 缓存通常要配合客户端(浏览器)使用才能发挥效果,所以又被称之为浏览器缓存,是 Web 性能优化的一大利器。 缓存类型 浏览器缓存分为强缓存和协商缓存。 另外一种分类方式,可以将浏览器缓存分成 HTTP 协议缓存和非 HTTP 协议缓存。 (1) 非 HTTP 协议缓存:使用 HTML Meta 标签,开发者可以告诉浏览器是否缓存当前页面。 HTTP 缓存 HTTP/1.0 缓存字段 (1) Pragma:设置资源是否缓存,no-cache 表示不缓存。 (3) Etag/If-None-Match: Etag 是根据资源内容生成的一段 hash 字符串,标识资源的状态,由服务端产生。浏览器将这串字符串传回服务器,验证资源是否发生修改。 参考资料 HTTP Headers 浅谈浏览器http的缓存机制 Web缓存相关知识整理 浅谈Web缓存 详谈Web缓存

    82830发布于 2021-11-26
  • 来自专栏IT技术订阅

    MySQL优化缓存优化

    MySQL的优化指的是一个很大的系统,面试的时候我之前是从sql的语句优化方面去说的,这种优化也有作用,不过是从逻辑方面去优化。 而MySQL的缓存机制就是把刚刚访问的数据(时间局部性)以及未来即将访问到的数据(空间局部性)保存到缓存中,甚至是高速缓存中。从而提高I/O效率。 按照缓存读写功能的不同,MySQL将缓存分为Buffer缓存和Cache缓存。 Buffer缓存。由于硬盘的写入速度过慢,或者频繁的I/O,对于硬盘来说是极大的效率浪费。 那么可以等到缓存中储存一定量的数据之后,一次性的写入到硬盘中。Buffer 缓存主要用于写数据,提升I/O性能。 Cache 缓存3.复制连接超时 当主从配置是,从服务器(slave)从主服务器(master)读取二进制日志失败后,从服务器会等待 slave_net_timeout 后,从新从master机拉去二进制日志。

    1.6K20编辑于 2022-05-11
  • 来自专栏冷冷

    缓存策略优化

    缓存介绍 这里是列表文本在高并发多用户的系统中常常会使用缓存来提升读写性能 这里是列表文本常见的如memcached, redis, 内存缓存等 现象 这里是列表文本某产品上线后不久 PreparedStatement.java:1379) - locked <********> (a com.mysql.jdbc.JDBC4Connection) at com.mchange.v2.c3p0 com.xxxx.xxxx.web.controller.login.LoginController.login(LoginController.java:119) 分析 仔细分析对应代码逻辑,可发现有如下的缓存策略 每一个线程都会去执行getFromDb()这个方法,每个请求都会穿透到db上 当用户请求较大时,对数据库的压力会非常大【上面的stack仅为多台应用web中的一台】 解决 当数据库中无数据时,可以在缓存中放一个无效的对象表明

    1.3K80发布于 2018-02-08
  • 来自专栏人工智能

    Unity3D WebGL内存优化缓存管理

    在 Unity WebGL 项目中,直接通过代码清除浏览器缓存是不可行的(浏览器出于安全考虑不允许网页直接操作缓存)。 博客将会介绍如何实现WebGL内存优化缓存管理。 alert('内存过高,请点击确定刷新页面');"); Application.ExternalEval("window.location.reload();"); } } 2-3、 最佳实践仍然是优化资源加载/卸载逻辑,而非依赖浏览器缓存清理。 三、Unity编辑器开启WebGL内存设置 在 Unity 2020 及更新版本中,WebGL 内存设置的位置和方式有所变化。 打开 Project Settings > Player > WebGL 在 Resolution and Presentation 部分选择刚创建的模板: CustomMemoryTemplate 3- Instantiate(request.asset as GameObject); Resources.UnloadAsset(request.asset); } 总结 本次总结的就是实现WebGL内存优化缓存管理

    47310编辑于 2026-01-20
  • 来自专栏向治洪

    android之listview缓存图片(缓存优化

    网上关于这个方面的文章也不少,基本的思路是线程+缓存来解决。 下面提出一些优化: 1、采用线程池 2、内存缓存+文件缓存 3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/4 4、对下载的图片进行按比例缩放 ";   // 放入缓存时是个同步操作 // LinkedHashMap构造方法的最后一个参数true代表这个map里的元素将按照最近使用次数由少到多排列,即LRU // 这样的好处是如果要将缓存中的元素替换 ,初始0,将通过此变量严格控制缓存所占用的堆内存 private long size = 0;// current allocated size // 缓存只能占用的最大堆内存 private ,若没有再开线程,从文件缓存中查找都没有则从指定的url中查找,并对bitmap进行处理,最后通过下面方法对UI进行更新操作。

    2.2K90发布于 2018-01-29
  • 来自专栏程序猿DD

    Mybaitis 缓存优化

    这段代码中, Mybatis一共发了两条SQL,这就好像说, Mybatis中没有缓存,然后我们打开Mybatis的文档一看,顿时震惊 ? 这难道是骗人的,说好的默认开启缓存呢….. 此时发现,发了3条SQL,那么究竟是什么原因呢?如下图 ? 看完这个图,就明白为什么get(1L)->add()->get(1L)这个过程会发3条SQL了,因为insert的时候,清空了缓存 但是就算insert,并没有影响到get(1L)的结果,但是你却把他的缓存也清空了 ,这明显不合理,那么我们怎么优化呢? 也就是我们做了两件事 list由于缓存命中率低,那么我们就不加入到缓存中 insert我们不清空缓存 那么在代码中,我们具体是怎么实现的呢? UserMapper.xml ?

    57120发布于 2019-05-24
  • 来自专栏CSDNToQQCode

    MySQL技能完整学习列表6、查询优化——3、查询缓存——4、SQL优化技巧

    需要注意的是,查询缓存是基于语句的文本进行比较的,所以即使两个查询在逻辑上是等价的,但如果它们的文本表示不同(例如,空格、注释或大小写不同),它们将被视为不同的查询。 3. age INT ); 插入一些示例数据: INSERT INTO users (id, name, age) VALUES (1, 'Alice', 25), (2, 'Bob', 30), (3, SQL优化技巧 MySQL的SQL优化是一个关键的任务,可以显著提高数据库的性能。下面是一些常用的SQL优化技巧,以及具体的示例: 1. '; 3. 定期优化表和修复索引 使用OPTIMIZE TABLE命令来定期优化表和修复索引。这有助于提高查询性能。

    54110编辑于 2023-12-01
  • 来自专栏全栈程序员必看

    代码缓存3

    2、CodeBuffer CodeBuffer类似于IO里面的BufferedReader等用来临时缓存生成的汇编代码,CodeBuffer用来缓存汇编代码的内存通常是BufferBlob中content CodeCache就是用于缓存不同类型的生成的汇编代码,如热点方法编译后的代码,各种运行时的调用入口Stub等,所有的汇编代码在CodeCache中都是以CodeBlob及其子类的形式存在的。 _limit) pointer refers to the first unused (resp. unallocated) byte. 3、CodeCache::initialize() 在CodeCache :设置代码缓存的大小; -XX:+UseCodeCacheFlushing:当代码缓存满了的时候,让JVM换出一部分缓存以容纳新编译的代码。 这意味着,在代码缓存满了的时候,JVM会切换到纯解释器模式,这对于性能来说,可以说是毁灭性的影响; -XX:NmethodSweepCheckInterval:设置清理缓存的时间间隔; -XX:+DontCompileHugeMethods

    72720发布于 2021-04-07
  • 来自专栏高端IT

    缓存:第一章:缓存优化

    import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig;

    28330编辑于 2022-12-29
  • 来自专栏潇洒哥写字

    Redis缓存穿透、缓存击穿、热key问题优化 + 内存缓存

    Redis缓存穿透、缓存击穿问题优化 + 内存缓存 1 背景 广交会线上举办,在第三方服务不能保证稳定性的情况下,为保证官网稳定性,新增数据聚合服务,用于缓存数据,并保护第三方服务,且在第三方服务失败的情况下 3 解决方案 3.1 缓存穿透问题 针对pageSize和language的问题,可以和前台约定好,后端固定pageSize,不依赖前端传入;language固定两种入参校验。 3.3 redis热key问题 redis中的数据是一个定时任务(3min执行一次,缓存前20页)异步请求第三方服务,更新到redis的,未登录的情况下,理论上请求不会到第三方服务,都会命中redis且没有逻辑过期 [yam5rjyvbk.png] 经过内存缓存优化之后,压测接口的响应时间从ms级提升到了µs级,且压测锯齿明显减少。 5 结束 本文介绍了广交会项目后台用到的两种缓存和相关的优化方法。使用两级缓存还有一个问题就是缓存数据的实时性的问题,这里缓存的过期时间和更新时间需要设置好,不然会出现一致性的问题。

    2.5K341发布于 2020-06-25
  • 来自专栏Java后端开发博客

    瑞吉外卖-缓存优化

    # 瑞吉外卖-缓存优化 缓存优化 问题说明 使用git管理代码 环境搭建 maven坐标 配置文件 配置类 缓存短信验证码 实现思路 缓存菜品数据 实现思路 Spring Cache 框架 Spring Cache介绍 Spring Cache 常用注解 Spring Cache使用方式 缓存套餐数据 实现思路 代码改造 # 缓存优化 # 问题说明 用户数量多,系统访问量大频繁访问数据库,系统性能下降 现在需要对此方法进行缓存优化,提高系统的性能。 3、在启动类上加入@EnableCaching注解,开启缓存注解功能 4、在Controller的方法上加入@Cacheable、@CacheEvict等注解,进行缓存操作 # 缓存套餐数据 # 实现思路 现在需要对此方法进行缓存优化,提高系统的性能。

    60720编辑于 2022-12-25
  • 来自专栏小工匠聊架构

    Redis进阶-Redis缓存优化

    ---- 缓存穿透 定义 查询一个根本不存在的数据, 缓存和DB都不会命中, 白嫖了缓存层和DB 。 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。 由于缓存层承载着大量请求, 有效地保护了存储层, 但是如果缓存层由于某些原因不能提供服务(比如超大并发过来,缓存层支撑不住,或者由于缓存设计不好,类似大量请求访问bigkey,导致缓存能支撑的并发急剧下降 3) 提前演练。 在项目上线前, 演练缓存层宕掉后, 应用以及后端的负载情况以及可能出现的问题, 在此基础上做一些预案设定。 ---- 缓存击穿 ( 热点缓存key重建优化 ) 一般情况下,我们使用“缓存+过期时间”的策略既可以加速数据读写, 又保证数据的定期更新, 这种模式基本能够满足绝大部分需求。 缓存击穿的解决方案 (热点缓存key重建优化) 要解决这个问题主要就是要避免大量线程同时重建缓存

    1.5K20发布于 2021-08-17
  • 来自专栏JavaEdge

    Redis缓存设计与优化

    很小的内存就能实现过滤,适用于固定的数据,不适频繁更新的数据

    82010发布于 2018-08-22
  • 来自专栏老司机的简书

    TableView优化之高度缓存

    TableView优化之高度缓存 系列文章: TableView优化之高度缓存功能 TableView优化之加载图片的优化逻辑 TableView优化之快速滑动下的忽略加载 ---- 呐,也好久没写博客了 ---- tableView优化之高度缓存功能 日常开发中,tableView的使用率很高,所以相对tableView的优化来说可以做很多很多的事情。 因此应运而生了这套高度缓存的算法。 在此声明,这套算法不是老司机原创,是整合并优化了外国一位大神的源码。 * dicHeightCurrent;//当前状态行高缓存字典(中间量) 为什么三个字典呢? 3.然后如果是使用autoLayout进行自适应计算。 这个也是老司机为之后留下的接口,可以控制是否进行一autoLayout进行计算。但实际并没有处理。

    3.1K30发布于 2018-08-22
  • 来自专栏飞鸟的专栏

    Zuul的性能优化-缓存

    缓存 在微服务架构中,有些请求的响应结果是不变的,例如一些静态文件或公共数据。这些请求的响应结果可以被缓存起来,减少重复计算和请求,提高性能。 Zuul提供了多种缓存机制,例如本地缓存、分布式缓存等,可以根据实际需求选择适合的缓存机制。 在CustomFilter的run方法中,先检查缓存中是否已经存在响应结果,如果存在,则直接返回缓存中的结果;否则,继续执行请求并将响应结果缓存起来: public class CustomFilter ,并根据请求URL作为key从缓存中获取响应结果。 如果缓存中已经存在响应结果,则直接将响应结果设置到Zuul的响应中返回。 如果缓存中不存在响应结果,则继续执行请求,并将响应结果缓存起来。

    67330编辑于 2023-04-09
  • 来自专栏私人订制

    emlog缓存文件优化 加快文章发布速度缓存速度

    今天分享一下Emlog网站优化,如何加快网站的缓存速度,加快文章发布速度的方法 Emlog是基于PHP+MYSQL的运行环境,那么缓存来源于MYSQL数据库,加快缓存速度,就是要加快MYSQL的查询速度 针对MYSQL的查询优化,有建索引等等,还有重要一点“SELECT * ”类似这样的SQL查询语句要少用 当表内某字段存在“NULL”值时,查询就会很慢,当数据量大了之后会更慢! 所以有两个优化方向,尽量减少数据库中的NULL值(空字符串) 其二就是优化SQL查询语句,建立索引 那么针对EMLOG缓存,我们就可以针对性优化 本站的优化就需要在用户表数据这里处理,因为用户过多导致用户缓存数据特别慢 1、用户缓存修改方法: 打开根目录下的“include\lib\cache.php”将用户数据缓存这里替换一下,代码如下: 未修改前: /** * 用户信息缓存 */ private function } $cacheData = serialize($user_cache); $this->cacheWrite($cacheData, 'user'); } 2、emlog核心优化方法

    99720编辑于 2023-05-11
  • 来自专栏全栈程序员必看

    Android内存优化之磁盘缓存

    前言: 在上一篇文章中介绍了内存缓存,内存缓存的长处就是非常快。可是它又有缺点: 空间小,内存缓存不可能非常大; 内存紧张时可能被清除; 在应用退出时就会消失,做不到离线。 基于以上的缺点有时候又须要第二种缓存,那就是磁盘缓存。大家应该都用过新闻client,非常多都有离线功能,功能的实现就是磁盘缓存。 第一个參数是数据的缓存文件地址,第二个參数是当前应用程序的版本,第三个參数是同一个key能够相应多少个缓存文件。一般都是传1,第四个參数是最多能够缓存多少字节的数据,10M? //创建磁盘缓存文件。 在实际操作中内存缓存和磁盘缓存是配合起来使用的。一般先从内存缓存中读取数据,假设没有再从磁盘缓存中读取。

    1K30编辑于 2022-07-20
  • 来自专栏JavaEdge

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

    3 缓存分类和应用场景 根据缓存与应用的藕合度,分为local cache(本地缓存)和remote cache(分布式缓存) 本地缓存:指的是在应用中的缓存组件,其最大的优点是应用和cache是在同一个进程内部 ,如图3的左侧部分描述。 主要特性: 快速,针对大型高并发系统场景,Ehcache的多线程机制有相应的优化改善。 简单,很小的jar包,简单配置就可直接使用,单机场景下无需过多的其他服务依赖。 支持多种的缓存策略,灵活。 相较于memcached的预分配内存管理,Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片。 域已发生更新,自动影响cache1、cache2、cache3等处的缓存数据。

    1.1K21发布于 2018-09-20
  • 来自专栏linux教程

    WordPress安装Memcached内存缓存优化

    WordPress:Memcached 内存缓存优化 ,加速WordPress 后台媒体库加载 WordPress网站媒体库的图片随着文章的增长,会越来越多,有时候不断的去翻几个月前的图片进行引用,发现显示特别慢 ,原来这个内存缓存并没有缓存媒体库月份筛选附件功能这里。 今天就跟大家分享下如何使用 Memcached 内存缓存优化 WordPress 后台媒体库加载。 使用内存缓存优化媒体库月份获取 虽然不会造成很大的问题,但是附件如果不新增删除,这个月份的数据基本不会变化,站长是用 WPJAM 插件配合 Memcached 将其缓存起来。 将下面的代码复制到当前主题的 functions.php 文件中,就可以使用内存来缓存媒体库的月份了: // 使用 Memcached 内存缓存优化 WordPress 后台媒体库月份获取加载 - https

    86430编辑于 2023-04-26
领券