性能优化

性能优化清单:(完整了解)
  yohoo:https://github.com/JohnsenZhou/Front-End-Performance-Checklist
  google:https://developers.google.cn/web/fundamentals/performance/why-performance-matters/
  可以看下自己的网站或页面是否达到要求

http缓存:

  • http1.0:    

    一、expires,设置缓存有效期 // (不用去服务器监测,直接在本地取)
      问题:如果系统时间不对,则缓存会出错(如:当前时间是2019-9-9,系统时间是2020-9-9,则缓存永远都会过期)

    二、last-modified,设置对象的最后修改时间 // (需要去服务器监测)
      带上last-modified去服务区check一下有没有过期,如果返回304,就会直接从缓存里面返回,否则会返回一个实际的文件
      问题:文件被修改但内容没有变。因为last-modified的问题,导致了E-tag出现

  • http1.1

    一、1.max-age=num(s),设置最大缓存时间 // (不用去服务器监测,直接在本地取)
      2.public,缓存能被多用户共享
      3.private,缓存不能再用户间共享
      4.no-cache,不会被缓存
      5.no-store,不能被存储
    二、E-tag,可能在同一秒保存两次,也可能在服务器上文件修改时间不一致 // (需要去服务器监测)

      max-age + Last Modified + Etag:如果支持Etag,会优先使用Etag作为验证的标准

      让我们去设计一个资源缓存方案,应当怎么做?
        1.HTML (no-cache)
        2.CSS、JavaScript (MD5/timestamp/version + 长缓存)
        3.Image (随机名字[uid 唯一的名字] + 长缓存

 

本地存储:

  • Cookies:存储数据量优先,并且每次都会带到服务器,占用带宽  

    一般不推荐在cdn上带cookie,html文件与资源文件要分域

  • localstorage:有大小限制,数据不安全;

    例:百度把所有的js和css都放在localstorage中以此来提速

    把多个数据存在一个key好?还是分开多个key存储比较好?
    存多个key读写效率更快。

    localstorage存爆了应该怎么处理?
    无论是get还是set都需要用try catch包裹,不然可能会出错

    怎么解决数据需要踢出,用什么方式踢出?
    在命名的时候需要分级,分别代表数据的重要程度,先将重要程度低的数据踢出

  • sessionStorage:很少使用,会话关闭就没有了
  • IndexDB:很少使用

    IndexDB是异步的,有可能页面都完全返回了,异步还没完成;IndexDB需要先初始化数据库

  • App Cache:大坑货,不要用

    1.可能会缓存错误页面,设置缓存运营商的劫持广告,
    2.更新中有一个文件失败了,就会全部退回上一个版本,
    3.由于是Lazy更新,如果后台接口有break change将会是大麻烦
    4.manifest文件 (一定要设置no-cache) 也有可能不小心被缓存了

  • Service Worker:App Cache太失败,以至于W3C终于明白用户需要更细致的缓存控制

 

Hybrid App:
  在app中提供一个webview,在里面直接写代码,可以通过js调一些native使用的api,如图片上传能力、原生接口等。
  离线包技术:可以看成是私有service worker。

Weex:
  尽量不要用react native和weex
  Weex,rn(react native)性能好的原因(如何解决性能问题):来自于被删减的浏览器渲染实现。
  例:在weex和rn中,css只能使用flex-box,其他如border-box不能被使用

  weex和rn解决的问题:1、可以让前端写native;2、用户可以更容易调用原生组件;
  不适合在高交互场景使用,所以在大量表单之类的场景千万不要使用

了解flutter

AMP(google):
  类似:MIP(百度),抄AMP
  AMP是谷歌推荐的有利于它搜索引擎做优化的网页的标准,组件非常受控。如电商网站等

转载于:https://www.cnblogs.com/jingouli/p/11503178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB性能优化是指通过一系列技术手段来提升MongoDB数据库的读写效率、响应速度和吞吐量。下面是一些常见的MongoDB性能优化方法: 1. 索引优化:使用合适的索引可以加速查询操作。在选择索引字段时,应根据查询的频率和字段的选择性来进行考虑。避免创建过多的索引,因为过多的索引会增加数据写入和更新的开销。 2. 查询优化:使用合适的查询语句和操作符可以减少数据扫描的量。避免使用全表扫描操作,尽量利用索引进行查询。 3. 数据模型优化:合理设计数据模型可以提升数据库的性能。将经常一起查询的数据放在同一个集合中,避免频繁的跨集合查询。 4. 分片集群优化:对于大规模数据集,可以使用分片集群来提高性能和可伸缩性。通过合理划分数据和配置分片,可以实现负载均衡和并行查询。 5. 预分配空间:在写入大量数据之前,可以预先为集合或数据库分配足够的存储空间,避免频繁的扩容操作对性能造成影响。 6. 配置参数优化:根据系统硬件和工作负载的特点,调整MongoDB的配置参数,如缓存大小、线程数等,以获得更好的性能表现。 7. 使用复制集和副本集:通过配置复制集和副本集,可以提高数据的可用性和读取性能。 8. 批量操作和异步写入:通过批量操作和异步写入方式可以提高写入性能。例如,使用Bulk Write API进行批量插入、更新和删除操作;启用Write Concern的"unacknowledged"模式,将写入操作异步化。 9. 监控和调优:定期监控数据库的性能指标,如QPS、响应时间、磁盘使用率等,及时发现并解决潜在的性能问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值