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

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

    (2) 如果浏览器缓存中没有对应的 IP 地址,浏览器会继续查找操作系统缓存中是否有域名对应的 DNS 解析结果。我们可以通过在操作系统中设置 hosts 文件来设置 IP 与域名的关系。 清除 DNS 缓存 (1) chrome: chrome://net-internals/#dns (2) 本地 DNS :Windows: ipconfig /flushdns; Linux 和 mac (2) DNS 预解析: 可以通过 meta 信息告诉浏览器,页面需要做 DNS 预解析。 还记得之前Web 性能优化-页面重绘和回流(重排)中提到的 Google 1s 终端首屏渲染标准,假如 DNS 解析出现问题,那可能几秒甚至几十秒都首屏不了了。 DNS-over-HTTPS 参考资料 DNS域名解析过程 无线性能优化:域名收敛 提升页面访问速度的前端优化大法:DNS预解析 也谈 HTTPS - HTTPDNS + HTTPS

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

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

    浏览器缓存 HTTP 缓存通常要配合客户端(浏览器)使用才能发挥效果,所以又被称之为浏览器缓存,是 Web 性能优化的一大利器。 缓存类型 浏览器缓存分为强缓存和协商缓存。 (2) 协商缓存:当强缓存没有命中的时候,浏览器向服务器发送请求,服务器端依据资源的另外一些 HTTP Header 验证这个资源是否命中协商缓存,如果协商缓存命中,服务器会将这个请求返回 304,浏览器从缓存中加载这个资源 (2) HTTP 协议缓存:通过在 HTTP 协议头里面定义一些字段来告诉浏览器当前资源是否缓存,比如 Cache-Control, Expires, Last-Modified, Etag 等。 (2) Expires:设置资源过期时间,Expires 的值对应一个 GMT(格林尼治时间) 来告诉浏览器资源什么时间过期。 浏览器行为 (1) F5 刷新页面时,会跳过强缓存,检查协商缓存。 (2) ctrl + F5 强制刷新页面时,之间从服务端加载数据,跳过强缓存和协商缓存

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

    MySQL优化缓存优化

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

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

    缓存策略优化

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

    1.3K80发布于 2018-02-08
  • 来自专栏向治洪

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

    网上关于这个方面的文章也不少,基本的思路是线程+缓存来解决。 下面提出一些优化: 1、采用线程池 2、内存缓存+文件缓存 3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/4 4、对下载的图片进行按比例缩放 It should be the power of 2. width_tmp /= 2;                   height_tmp /= 2;                   scale *= 2;               }   o2.inSampleSize = scale;   return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);           

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

    Mybaitis 缓存优化

    这段代码中, Mybatis一共发了两条SQL,这就好像说, Mybatis中没有缓存,然后我们打开Mybatis的文档一看,顿时震惊 ? 这难道是骗人的,说好的默认开启缓存呢….. 看完这个图,就明白为什么get(1L)->add()->get(1L)这个过程会发3条SQL了,因为insert的时候,清空了缓存 但是就算insert,并没有影响到get(1L)的结果,但是你却把他的缓存也清空了 ,这明显不合理,那么我们怎么优化呢? 也就是我们做了两件事 list由于缓存命中率低,那么我们就不加入到缓存中 insert我们不清空缓存 那么在代码中,我们具体是怎么实现的呢? UserMapper.xml ? 这样之后,我们Mybatis中的缓存就更高效了 ---- 推荐阅读: 推荐一款让你纵横Github的读码神器 还在使用 SimpleDateFormat?你的项目崩没?

    57120发布于 2019-05-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

    97420发布于 2019-08-13
  • 来自专栏高端IT

    缓存:第一章:缓存优化

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

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

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

    Redis缓存穿透、缓存击穿问题优化 + 内存缓存 1 背景 广交会线上举办,在第三方服务不能保证稳定性的情况下,为保证官网稳定性,新增数据聚合服务,用于缓存数据,并保护第三方服务,且在第三方服务失败的情况下 2 实例 [hedox8syra.png] 品牌橱窗、CF奖展品 这两个接口,其中品牌橱窗是个性化数据,当用户未登录时(游客),看到的是相同的数据,用户登录之后,看到的是个性化的数据(每个人看到的不同) 如果第三方服务请求失败,要在redis中set一个空值,如"null",并设置一个较短的生存期(2秒),防止短期内大量请求打到服务端,设置较短的生存期避免请求长时间拿不到数据。 [yam5rjyvbk.png] 经过内存缓存优化之后,压测接口的响应时间从ms级提升到了µs级,且压测锯齿明显减少。 5 结束 本文介绍了广交会项目后台用到的两种缓存和相关的优化方法。使用两级缓存还有一个问题就是缓存数据的实时性的问题,这里缓存的过期时间和更新时间需要设置好,不然会出现一致性的问题。

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

    瑞吉外卖-缓存优化

    # 瑞吉外卖-缓存优化 缓存优化 问题说明 使用git管理代码 环境搭建 maven坐标 配置文件 配置类 缓存短信验证码 实现思路 缓存菜品数据 实现思路 Spring Cache 框架 Spring Cache介绍 Spring Cache 常用注解 Spring Cache使用方式 缓存套餐数据 实现思路 代码改造 # 缓存优化 # 问题说明 用户数量多,系统访问量大频繁访问数据库,系统性能下降 现在需要对此方法进行缓存优化,提高系统的性能。 现在需要对此方法进行缓存优化,提高系统的性能。 具体的实现思路如下: 1、导入Spring Cache和Redis相关maven坐标 2、在application.yml中配置缓存数据的过期时间 3、在启动类上加入@EnableCaching注解,开启缓存注解功能

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

    Redis进阶-Redis缓存优化

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

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

    Redis缓存设计与优化

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

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

    TableView优化之高度缓存

    TableView优化之高度缓存 系列文章: TableView优化之高度缓存功能 TableView优化之加载图片的优化逻辑 TableView优化之快速滑动下的忽略加载 ---- 呐,也好久没写博客了 ---- tableView优化之高度缓存功能 日常开发中,tableView的使用率很高,所以相对tableView的优化来说可以做很多很多的事情。 因此应运而生了这套高度缓存的算法。 在此声明,这套算法不是老司机原创,是整合并优化了外国一位大神的源码。 1.先拿到cell的宽度 2.根据辅助视图样式校正宽度 如果有自定义辅助视图,则按照自定义辅助视图的宽度去校正,如果没有按照系统辅助视图样式去校正宽度,然后根据宽度计算高度。 http://www.jianshu.com/p/2b192257276f

    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的查询速度 所以有两个优化方向,尽量减少数据库中的NULL值(空字符串) 其二就是优化SQL查询语句,建立索引 那么针对EMLOG缓存,我们就可以针对性优化 本站的优化就需要在用户表数据这里处理,因为用户过多导致用户缓存数据特别慢 1、用户缓存修改方法: 打开根目录下的“include\lib\cache.php”将用户数据缓存这里替换一下,代码如下: 未修改前: /** * 用户信息缓存 */ private function str_replace('thum', 'thum52', $photosrc) : preg_replace("/^(.*)\/(.*)$/", "\$1/thum52-\$2", $photosrc str_replace('thum', 'thum52', $photosrc) : preg_replace("/^(.*)\/(.*)$/", "\$1/thum52-\$2", $photosrc

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

    Android内存优化之磁盘缓存

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

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

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

    2 Mtconfig实现图 这类缓存实现,优点是能直接在heap区内读写,最快也最方便;缺点同样是受heap区域影响,缓存的数据量非常有限,同时缓存时间受GC影响。 image 图4 缓存数据流转图(L1:本地内存层;L2:Terracotta服务节点层) Ehcache的配置使用如下: <ehcache> <! 主要特性: 快速,针对大型高并发系统场景,Ehcache的多线程机制有相应的优化改善。 简单,很小的jar包,简单配置就可直接使用,单机场景下无需过多的其他服务依赖。 支持多种的缓存策略,灵活。 相较于memcached的预分配内存管理,Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片。 域已发生更新,自动影响cache1、cache2、cache3等处的缓存数据。

    1.1K21发布于 2018-09-20
  • 来自专栏YoungGy

    优化2】整数优化

    或的逻辑约束 三个选择的或 只有才 更多或 整数可除 多边形组合 固定花费 分段线性 组合型 set covering set packing 食堂定位 地图填色 Julia例子 9数独 概述 整数优化就是线性优化 x1被选中当且仅当x2被选中。 x2或x3被选中,可以都被选中。 x2或x3被选中,不可以都被选中。 对应的IP约束为: x1-x3<=0 x1+x5<=1 x1-x2=0 x2+x3>=1 x2+x3=1 或的逻辑约束 或的逻辑问题,可以用用bigM方法去解决,其思想是通过添加新的变量,将部分约束变成多余的 例如,对于问题 [图片] 或 [图片] (两者可以都出现),y1、y2的定义域是[0,5]。 and column j to j+2 @constraint(m, sum{x[r,c,k], r=i:i+2, c=j:j+2} == 1) end for i = 1:9, j = 1:

    1.8K50发布于 2018-01-05
  • 来自专栏linux教程

    WordPress安装Memcached内存缓存优化

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

    86530编辑于 2023-04-26
  • 来自专栏iSharkFly

    Confluence 6 缓存性能优化

    Confluence 的运行状态与缓存状态有这密切的关系。针对 Confluence 的管理员来说,尤其是大型站点的 Confluence 管理员,设置好缓存尤其显得关键。 希望修改缓存的大小: 进入  ?  > 基本配置(General Configuration) > 缓存管理(Cache Management。) 在你希望修改缓存的边上,选择 调整大小(Adjust Size)。 https://www.cwiki.us/display/CONF6ZH/Cache+Performance+Tuning

    69630发布于 2019-01-30
领券