当前位置: 首页 > news >正文

【知识科普】今天聊聊CDN

CDN 技术详解:从原理到配置实践

  • CDN 技术详解:从原理到配置实践
    • 一、CDN 核心定义
    • 二、工作原理深度解析
      • 1. 请求路由机制
      • 2. 缓存分层架构
      • 3. 内容更新流程
    • 三、核心功能组件
      • 1. 基础设施层
      • 2. 软件系统
    • 四、典型配置流程(以Cloudflare为例)
      • 1. 基础配置步骤
      • 2. 高级功能配置
    • 五、性能优化关键指标
      • 1. 缓存命中率分析
      • 2. 延迟对比测试
    • 六、安全增强方案
      • 1. DDoS防护配置
      • 2. HTTPS强制策略
    • 七、主流服务商对比
    • 八、故障排查指南
    • 什么是CNAME
    • 二、工作原理详解
      • 1. 解析流程时序
      • 2. 与A记录关键区别
    • 三、技术实现细节
      • 1. DNS报文结构示例
      • 2. 多级CNAME链式解析
    • 四、典型应用场景
      • 1. CDN服务接入
      • 2. 云服务迁移
      • 3. 负载均衡集成
    • 五、特殊限制与对策
      • 1. 根域名限制
      • 2. MX记录冲突
    • 六、性能优化实践
      • 1. TTL分层设置
      • 2. DNS预取技术
    • 七、安全防护机制
      • 1. CNAME劫持防护
      • 2. 企业级管控方案
    • 八、前沿技术演进
      • 1. CNAME扁平化技术
      • 2. ECS协议扩展

CDN 技术详解:从原理到配置实践

一、CDN 核心定义

Content Delivery Network (内容分发网络)
通过地理分布的节点服务器集群,将静态/动态内容缓存到靠近用户的边缘节点,解决网络拥塞和延迟问题。

就近访问
缓存命中
缓存未命中
用户
边缘节点
直接返回内容
回源站拉取
源服务器

二、工作原理深度解析

1. 请求路由机制

技术说明示例
DNS智能解析根据用户IP返回最优节点IP上海用户→上海节点
Anycast路由BGP协议引导到最近节点AWS CloudFront
HTTP重定向302跳转到最佳节点大型文件下载场景

2. 缓存分层架构

边缘节点(Edge) → 区域节点(Regional) → 中心节点(Core) → 源站(Origin)50ms延迟          100ms延迟          200ms延迟         500ms+

3. 内容更新流程

用户请求 边缘节点 源站 用户 后续请求 请求/css/main.css 首次请求回源 返回内容+缓存头 响应内容 直接返回缓存 用户请求 边缘节点 源站 用户 后续请求

三、核心功能组件

1. 基础设施层

POPs(Points of Presence):• 全球部署: 通常1000+节点• 服务器类型: ◦ 边缘缓存服务器◦ 负载均衡器◦ 安全防护设备

2. 软件系统

模块功能描述
缓存引擎Varnish/Nginx缓存管理
日志分析系统实时流量监控
配置管理平台节点规则统一下发

四、典型配置流程(以Cloudflare为例)

1. 基础配置步骤

1. 添加域名
dnsctl add-domain example.com2. 修改DNS记录
nsupdate > server ns.cloudflare.com
update add example.com 3600 IN A 192.0.2.13. 缓存策略配置
curl -X PATCH "https://api.cloudflare.com/zones/{zone_id}/settings" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: ${API_KEY}" \
-d '{"value": {"cache_level": "aggressive"}}'

2. 高级功能配置

缓存规则示例:

Nginx边缘节点配置
location ~* \.(jpg|png|css|js)$ {expires 365d;add_header Cache-Control "public";proxy_cache_valid 200 302 24h;proxy_pass http://origin_backend;
}

动态内容加速:

// 边缘计算脚本(Cloudflare Workers)
addEventListener('fetch', event => {event.respondWith(handleRequest(event.request))
})async function handleRequest(request) {const url = new URL(request.url)if (url.pathname.includes('/api/')) {return fetch(request, {cf: { cacheTtl: 60 }})}
}

五、性能优化关键指标

1. 缓存命中率分析

Hit\ Ratio = \frac{Cache\ Hits}{Total\ Requests} \times 100\%
  • 优秀标准:静态资源>95%
  • 提升方法:
    • 延长TTL
    • 预缓存热门内容
    • 使用Cache-Tag

2. 延迟对比测试

• 未使用CDN: 北京→美国源站 300ms• 使用CDN: 北京→本地节点 25ms

六、安全增强方案

1. DDoS防护配置

Terraform配置AWS Shield
resource "aws_shield_protection" "cdn_protection" {name         = "cdn-protection"resource_arn = aws_cloudfront_distribution.example.arn
}resource "aws_wafv2_web_acl" "cdn_acl" {scope = "CLOUDFRONT"default_action {block {}}rule {name     = "rate-limit"priority = 1action {block {}}statement {rate_based_statement {limit              = 2000aggregate_key_type = "IP"}}}
}

2. HTTPS强制策略

响应头配置
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Content-Security-Policy: default-src https: 'unsafe-inline'

七、主流服务商对比

服务商节点数量特色功能计费模式
Cloudflare285+边缘计算/WAF集成请求次数
Akamai4000+媒体交付优化带宽分级
AWS CloudFront410+Lambda@Edge流量分层
Alibaba CDN2800+中国境内加速按日峰值带宽

八、故障排查指南

  1. 缓存不更新

    # 强制刷新缓存
    curl -X PURGE "https://cdn.example.com/image.jpg" \
    -H "X-Purge-Key: ${PURGE_TOKEN}"
    
  2. DNS解析问题

    # 多地点解析测试
    Test-NetConnection cdn.example.com -Port 443 -TraceRoute
    
  3. 性能分析工具

    # WebPageTest测试
    webpagetest.org test?url=https://example.com
    

通过合理配置CDN,可使网站加载速度提升50%-300%,同时降低源站负载60%以上。建议结合RUM(Real User Monitoring)数据持续优化缓存策略。

什么是CNAME

# CNAME 记录深度解析:互联网的"地址转发员"## 一、CNAME核心定义
**Canonical Name(规范名称记录)**  
DNS系统中的别名记录,实现域名到另一个域名的映射关系(类似文件系统的软链接)```mermaid
graph LRA[用户访问 www.example.com] --> B[DNS查询]B --> C[CNAME记录: cdn.example.net]C --> D[最终A记录: 192.0.2.25]

二、工作原理详解

1. 解析流程时序

浏览器 本地DNS 根DNS 权威DNS CDN DNS 查询 www.example.com 迭代查询 .com NS地址 请求example.com区域 返回CNAME记录 查询cdn.example.net 返回A记录(192.0.2.25) 返回IP地址 浏览器 本地DNS 根DNS 权威DNS CDN DNS

2. 与A记录关键区别

特性CNAME记录A记录
指向目标另一个域名直接IP地址
解析耗时需额外查询(增加50-100ms)直接返回结果
TTL控制受两级TTL影响单级TTL控制
使用场景服务商切换/多级域名管理终端服务器直连

三、技术实现细节

1. DNS报文结构示例

;; ANSWER SECTION:
www.example.com.  3600  IN  CNAME  cdn.example.net.
cdn.example.net.  300   IN  A      192.0.2.25

2. 多级CNAME链式解析

dig命令追踪解析链
dig +trace shop.example.com; <<>> DiG 9.16.1 <<>> +trace shop.example.com
;; ANSWER SECTION:
shop.example.com.  3600 IN CNAME   store.3rdparty.com.
store.3rdparty.com. 300 IN CNAME   xyz.cloudprovider.net.
xyz.cloudprovider.net. 60 IN A     203.0.113.45

四、典型应用场景

1. CDN服务接入

域名解析配置示例
www    IN  CNAME  example.cdnprovider.com
images IN  CNAME  assets.cdnprovider.net

2. 云服务迁移

旧域名: legacy.example.com → CNAME → newservice.aws.com
实现流量无缝切换,无需修改客户端配置

3. 负载均衡集成

配合LB的DNS配置
api    IN  CNAME  elb-123456.us-west-1.elb.amazonaws.com.

五、特殊限制与对策

1. 根域名限制

无效配置(违反RFC标准)
example.com. IN CNAME other.com.  ❌解决方案:
@     IN  A      192.0.2.1       # 根域名必须用A记录
www   IN  CNAME  cdn.example.com  # 子域名可用CNAME

2. MX记录冲突

mail.example.com. IN CNAME ghs.google.com.  ❌
会导致邮件服务器无法正常解析MX记录

六、性能优化实践

1. TTL分层设置

; 上层CNAME设置较长TTL
cdn    IN  CNAME  s3.amazonaws.com.  ; TTL=86400; 下层A记录设置较短TTL
s3.amazonaws.com. IN A 192.0.2.25    ; TTL=300

2. DNS预取技术

<!-- 页面头部预解析CNAME -->
<link rel="dns-prefetch" href="//cdn.example.net">

七、安全防护机制

1. CNAME劫持防护

; 启用DNSSEC验证
example.com. IN DNSKEY 256 3 13 ( ... )
cdn    IN  CNAME  _dns123.acmecdn.com.

2. 企业级管控方案

Windows DNS服务器审核日志
Register-ArgumentCompleter -CommandName Get-DnsServerAuditLog -ParameterName EventType -ScriptBlock {param($commandName, $parameterName, $wordToComplete)"CNAME_UPDATE","CNAME_DELETE" | Where-Object { $_ -like "*$wordToComplete*" }
}

八、前沿技术演进

1. CNAME扁平化技术

Cloudflare的CNAME Flattening
; 传统解析:
shop   IN CNAME shops.myshopify.com.
shops.myshopify.com. IN A 192.0.2.33; 扁平化后:
shop   IN A 192.0.2.33  ; 自动合成最终记录

2. ECS协议扩展

; 启用客户端子网信息传递
dig +subnet=1.2.3.0/24 www.example.com

通过合理使用CNAME记录,可实现:
• 服务迁移零停机(减少约78%配置变更)

• CDN性能提升30%-50%

• 运维复杂度降低60%以上

建议配合DNS监控工具(如DNSPerf)持续跟踪解析性能,避免CNAME链条过长导致的延迟问题。

相关文章:

【知识科普】今天聊聊CDN

CDN 技术详解&#xff1a;从原理到配置实践 CDN 技术详解&#xff1a;从原理到配置实践一、CDN 核心定义二、工作原理深度解析1. 请求路由机制2. 缓存分层架构3. 内容更新流程 三、核心功能组件1. 基础设施层2. 软件系统 四、典型配置流程&#xff08;以Cloudflare为例&#xf…...

Axure疑难杂症:利用中继器制作三级下拉菜单(逻辑判断进阶)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:三级下拉菜单 主要内容:条件筛选时的逻辑判断思维,中继器使用 应用场景:复合条件下的下拉列表制作 案例展…...

C语言----操作符详解(万字详解)

目录 1. 操作符的分类 2. 二进制和进制转换 3. 原码 反码 补码 4. 移位操作符 4.1 左移操作符 >> 4.2 右移操作符 >> 5. 位操作符 5.1 按位与 & 5.2 按位或 | 5.3 按位异或 ^ 5.4 按位取反 ~ 练习 整数存储在内存中二进制中1的个数 练习 二进制位…...

docker本地部署ClipCascade,实现跨设备剪贴板同步

1、什么是 ClipCascade &#xff1f; ClipCascade 是一款开源的轻量级工具&#xff0c;可以自动同步您的剪贴板在多个设备之间&#xff0c;无需按键。它确保设备之间无缝的剪贴板共享&#xff0c;并以端对端加密优先保护隐私。无论您是在不同工作站之间切换&#xff0c;还是仅…...

Android Compose vs 传统View系统:全面对比与选型指南

Android Compose vs 传统View系统&#xff1a;全面对比与选型指南 一、引言 随着Android Jetpack Compose的正式发布&#xff0c;Android开发迎来了全新的声明式UI框架。本文将全面对比Compose与传统View系统的差异&#xff0c;帮助开发者做出合理的技术选型。 二、核心架构…...

CVE-2024-3431 EyouCMS 反序列化漏洞研究分析

易优内容管理系统(EyouCms) 隶属于海口快推科技有限公司&#xff0c;专注中小型企业信息传播解决方案&#xff0c;利用网络传递信息在一定程度上提高了办事的效率&#xff0c;提高企业的竞争力。EyouCms 是一个自由和开放源码的内容管理系统&#xff0c;它是一个可以独立使用的…...

C# wpf

学习网址&#xff1a;控件的父类们 - WPF中文网 - 从小白到大佬 控件的父类&#xff1a; 由此我们可以得出结论&#xff0c;控件的父类们(准确的说&#xff0c;应该叫父类的父类的父类)&#xff0c;至少有如下几个类型&#xff1a; DispatcherObjectDependencyObjectVisualU…...

十一、引用与拷贝函数(References the Copy-Constructor)

十一、引用与拷贝函数&#xff08;References & the Copy-Constructor&#xff09; 11.1 指针回顾&#xff08;Review of pointers&#xff09; 指针可以保存一个地址。 当你定义一个指针时&#xff0c;必须指定它所指向变量的类型&#xff0c;并且应该初始化它。 示例&a…...

数据结构之顺序表

目录 1.线性表 1.1 线性表的定义&#xff1a;零个或多个数据元素的有限序列。 1.2深度解析 1.3 线性表的抽象数据类型 2.顺序表 2.1 顺序表的定义和存储方式 2.2静态顺序表 2.2.1 静态顺序表的使用 2.2.3 为什么我们要使用typedef呢&#xff1f; 2.2.4 为什么我们要使…...

【计算机视觉】三种图像质量评价指标详解:PSNR、SSIM与SAM

图像质量评价指标详解&#xff1a;PSNR、SSIM与SAM 文章目录 图像质量评价指标详解&#xff1a;PSNR、SSIM与SAM1. 峰值信噪比(PSNR)1.1 数学定义1.2 特点与局限性 2. 结构相似性指数(SSIM)2.1 数学定义2.2 特点与应用 3. 光谱角度映射器(SAM)3.1 数学定义3.2 特点与应用 4. Py…...

轻舟系列FPGA加速卡:大模型分布式训练中的高效协同者

在超大规模模型&#xff08;如千亿级参数&#xff09;的分布式训练中&#xff0c;计算、存储与通信的协同优化是突破性能瓶颈的关键。绿算技术公司的轻舟系列FPGA加速卡凭借其低延迟、高能效和可编程特性&#xff0c;能够成为分布式训练架构中的异构加速节点。其在训练集群中的…...

C++20 小语法

这个提案允许在static_assert和if constexpr中从整形转换为布尔类型。 以下表格就可以表示所有内容。 对于严格的C 编译器来说&#xff0c;以前在这种情境下int无法向下转换为bool&#xff0c;需要手动强制转换&#xff0c; C23 这一情况得到了改善。 对于严格的C编译器来说&a…...

LM393比较器的比较翻转电压不对

问个问题&#xff0c;用的LM393比较器&#xff0c;3.3V供电&#xff0c;比较器输出上拉到3.3V&#xff0c; V给的基准2.8V&#xff0c;V-电压从1V升到2.3V&#xff0c;比较器就输出0V了&#xff0c;按理论超过2.8V才翻转到0V的 根据问题描述和电路分析&#xff0c;比较器LM393…...

解决 shadui组件库Popover 点击后会消失

react用了shadui组件库 <Popover><PopoverTrigger><div className"text-operation-item" onClick{props.callback}><img src{props.imgSrc} width{20} height{20} /></div></PopoverTrigger><PopoverContent className"…...

国联股份卫多多与北京慧闻科技(集团)签署战略合作协议

4月27日&#xff0c;北京慧闻科技&#xff08;集团&#xff09;有限公司&#xff08;以下简称“慧闻科技”&#xff09;销售总监王兴卓一行到访国联股份卫多多&#xff0c;同卫多多/纸多多副总裁、产发部总经理段任飞&#xff0c;卫多多机器人产业链总经理桂林展开深入交流&…...

从数据到决策:如何使用Python进行自动驾驶数据分析

从数据到决策:如何使用Python进行自动驾驶数据分析 大家好,我是Echo_Wish,今天来和大家聊一聊在自动驾驶领域中,如何通过Python进行数据分析。随着自动驾驶技术的不断发展,数据分析在这一领域的作用越来越重要。从传感器数据的处理到模型的训练和优化,Python在自动驾驶数…...

IIS服务器提示ERR_HTTP2 PROTOCOL ERROR解决方案

今天我的淘宝店来了一个客户&#xff0c;说小程序苹果访问没问题&#xff0c;安卓系统访问出现ERR HTTP2 PROTOCAL ERROR的错误见下图 方法供大家闭坑步骤&#xff1a;通过注册表修改(高级) 打开注册表编辑器 (regedit) 导航到&#xff1a; HKEY_LOCAL_MACHINE\SYSTEM\Current…...

Django的异步任务队列管理_Celery

1 基本原理 Celery 是一个异步任务队列&#xff0c;能够将耗时操作&#xff08;如发邮件、处理图片、网络爬虫等&#xff09;从 Django 主线程中分离出来&#xff0c;由后台的 worker 处理&#xff0c;避免阻塞请求。Celery 作为独立运行的后台进程&#xff08;Worker&#xf…...

Ubuntu18.04安装IntelliJ IDEA2025步骤

1.下载linux版本的idea 复制下面链接到虚拟机浏览器 下载 IntelliJ IDEA 下载好后&#xff0c;你的文件里会多一个文件&#xff0c;如下图 2.解压并运行Idea 2.1在/usr/local/路径下新建安装目录IDEA&#xff1a; 打开终端输入以下命令&#xff1a; sudo mkdir -p /usr/loc…...

LLM - Large Language Model

回顾2024&#xff1a;与LLM又相伴一年的经历与思考 - 知乎万字长文入门大语言模型&#xff08;LLM&#xff09; - 知乎“大模型本质就是两个文件&#xff01;”特斯拉前AI总监爆火LLM科普&#xff0c;时长1小时&#xff0c;面向普通大众 - 知乎大模型本质及趋势剖析&#xff0c…...

解决Ubuntu20.04重启出现显卡驱动异常的问题(操作记录)

一、问题情况 电脑异常断电&#xff0c;重启后&#xff0c;显示界面异常&#xff0c;显卡驱动已丢失。 二、操作流程 1、查看安装显卡驱动 ls /usr/src | grep nvidia 记住该驱动&#xff0c;我的是nvidia-550.127.05 2、安装dkms&#xff08;如果没有&#xff09; sudo …...

23.开关电源干扰控制的EMC改善措施

开关电源干扰控制的EMC改善措施 1. 开关电源的EMI干扰机理2. 钳位抑制EMI3. 阻容吸收抑制EMI4. 波形整形抑制EMI 1. 开关电源的EMI干扰机理 2. 钳位抑制EMI 只能抑制Ts阶段。 3. 阻容吸收抑制EMI 4. 波形整形抑制EMI...

新能源汽车声纹监测技术的发展趋势是什么?

新能源汽车声纹监测技术有以下发展趋势&#xff1a; 智能化与自动化程度不断提高 故障自动诊断与预警&#xff1a;未来声纹监测系统将能够更加准确地自动识别和分析新能源汽车各部件的声纹特征变化&#xff0c;不仅能检测出故障&#xff0c;还能对故障的发展趋势进行预测&…...

如何获取按关键字搜索京东商品详情(代码示例)

在电商领域&#xff0c;获取京东商品的详细信息对于市场分析、选品上架、库存管理和价格策略制定等方面至关重要。京东作为国内知名的电商平台&#xff0c;提供了丰富的商品资源。通过 Python 爬虫技术&#xff0c;我们可以高效地获取京东商品的详细信息&#xff0c;包括商品名…...

C#中构造器及属性的加载顺序

一.基本原则: 先加载静态构造函数和静态字段,后加载普通构造函数和普通字段;先加载基类再加载子类; 二.具体的加载顺序: 父类静态字段--->父类静态构造函数--->子类静态字段--->子类静态构造函数--->父类实例字段---> 父类实例构造函数--->子类实例字段-…...

vue项目中如何使用markdown编辑器

在开发中,编辑markdown和回显markdown都是常见的需求。在vue(2.x和3.x都可以)中可以使用mavon-editor这个第三方依赖包。示例很简单易懂。 安装 npm install mavon-editor 注册 在main.js中注册这个组件 import Vue from vue import mavonEditor from mavon-editor impor…...

Python爬虫(9)Python数据存储实战:基于pymysql的MySQL数据库操作详解

目录 一、背景与核心价值二、pymysql核心操作详解2.1 环境准备2.2 数据库连接与基础操作2.3 事务处理与错误回滚2.4 高级功能&#xff1a;批量插入与性能优化 三、pymysql进阶技巧3.1 连接池管理&#xff08;推荐使用DBUtils&#xff09;3.2 SQL注入防御3.3 与ORM框架对比 四、…...

WPF之Button控件详解

文章目录 1. 引言2. Button控件基础Button类定义 3. Button控件的核心属性3.1 Content属性3.2 IsDefault属性3.3 IsCancel属性3.4 其他常用属性 4. 按钮样式与模板自定义4.1 简单样式设置4.2 使用Style对象4.3 触发器使用4.4 使用ControlTemplate完全自定义4.5 按钮视觉状态 5.…...

如何查看电脑电池使用情况

第一步打开cmd&#xff1a; 在键盘上按下winr 或者在搜索框中输入cmd 点击命令提示符 进入命令框 第二步输入命令&#xff1a; powercfg/batteryreport 出现如下情况 第三部找到对应电池报告进行查看&#xff1a; 在对应路径下找到电池报告 点击battery-report.html 到此…...

软考-软件设计师中级备考 6、数据结构 图

1. 有向图 有向图是由顶点集合 V 和有向边集合 E 组成的图结构。在有向图中&#xff0c;边是有方向的&#xff0c;即从一个顶点指向另一个顶点&#xff0c;通常用有序对 (u, v) 表示&#xff0c;其中 u 是边的起始顶点&#xff0c;v 是边的终止顶点。例如&#xff0c;在一个表…...

Label Studio 软件介绍及安装使用说明

背景说明 在做AI项目建模的时候&#xff0c;往往需要数据标注工作&#xff0c;比较常用的数据标注软件是Labeling或者Labelme,这两个都是离线的单独标注软件&#xff0c;使用起来是比较方便的&#xff0c;也是入门级学者比较适合的软件&#xff0c;然而有时候我们数据标注的数据…...

Azure 数字孪生是什么?

“Azure 数字孪生”是一项平台即服务 (PaaS) 产品/服务&#xff0c;它能够创建基于整个环境的数字模型的孪生图&#xff0c;这些图可能是建筑物、工厂、农场、能源网络、铁路、体育场馆&#xff0c;甚至整个城市。 这些数字模型可用于获取洞察力&#xff0c;以推动产品改进、运…...

界面控件DevExpress WPF v25.1预览 - AI功能增强(语义搜索)

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...

【神经网络与深度学习】五折交叉验证(5-Fold Cross-Validation)

引言 五折交叉验证&#xff08;5-Fold Cross-Validation&#xff09;是一种广泛应用于机器学习模型性能评估的技术&#xff0c;通过多次实验确保模型的评估结果更加稳定、可靠&#xff0c;同时最大限度地利用有限的数据资源。它将数据分成若干子集&#xff0c;交替作为训练集和…...

Linux权限概念讲解

1. 用户类型 1.1 用户分类 在Linux里面用户分为两类&#xff0c;一种是超级用户&#xff08;root&#xff09;&#xff0c;一种是普通用户。 超级用户只有一个&#xff0c;而普通用户可以有很多个。 如果我们在root用户状态下想要变成普通用户&#xff0c;我们可以使用命令…...

网络安全零基础培训 L1-8 PHP基础语法

文章目录 1 认识PHP1.1 PHP简介1.2 主要的特点1.3 跨平台性1.4 与数据库的良好集成1.5 开源和社区支持1.6 应用场景1.6.1 网站开发1.6.2 内容的管理程序1.6.3 Web应用程序开发1.6.4 为什么学习了解PHP 2 PHP的基础语法2.1 创建第一个PHP程序2.2 如何写注释2.3 PHP的变量2.4 PHP…...

鸿蒙 长列表加载性能优化

长列表加载性能优化 针对长列表加载这一场景&#xff0c;对列表渲染时间、页面滑动帧率、应用内存占用等方面带来优化&#xff0c;提升性能和用户体验的手段有如下 4 种&#xff1a; 懒加载&#xff1a;提供列表数据按需加载能力&#xff0c;解决一次性加载长列表数据耗时长、…...

第十二届蓝桥杯 2021 C/C++组 卡片

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 卡片 - 蓝桥云课 思路&#xff1a; 思路详解&#…...

vscode 使用gitcode团队管理项目

1、下载安装vscode https://code.visualstudio.com/Download 2、安装git 3、在vscode中安装GitLens插件 4、打开终端 点击会显示当前更改的项目 5、提交更改的文件&#xff0c;会提示输入用户名、密码&#xff0c;这里的密码即是令牌&#xff0c;令牌在第一次创建的时候显…...

uniapp+vue3+ts 使用canvas实现安卓端、ios端及微信小程序端二维码生成及下载

加粗样式uniapp多端生成带二维码海报并保存至相册的实现 在微信小程序开发中&#xff0c;我们常常会遇到生成带有二维码的海报并保存到手机相册的需求&#xff0c;比如分享活动海报、产品宣传海报等。今天就来和大家分享一下如何通过代码实现这一功能。 准备工作 在开始之前&am…...

vue mixin混入与hook

mixin混入是 ‌选项式 API‌&#xff0c;在vue3-Composition API <script setup> 中无法直接使用&#xff0c;需通过 setup() 函数转换 vue2、vue3选项式API: // mixins/mixin.js export const mixin {methods: {courseType(courseLevel) {const levelMap {1: 初级,…...

《Masked Autoencoders Are Scalable Vision Learners》---CV版的BERT

目录 一、与之前阅读文章的关系&#xff1f; 二、标题&#xff1a;带掩码的自auto编码器是一个可拓展的视觉学习器 三、摘要 四、核心图 五、结果图 六、不同mask比例对比图 七、“Introduction” (He 等, 2021, p. 1) 引言 八、“Related Work” (He 等, 2021, p. 3)相…...

(云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍

1. 虚拟化资源 1.1 虚拟化对象 CPU虚拟化&#xff1a; 目标是使虚拟机上的指令能被正常执行&#xff0c;且效率接近物理机 内存虚拟化&#xff1a; 目标是能做好虚拟机内存空间之 间的隔离&#xff0c;使每个虚拟机都认为自己拥有了整个内存地址&#xff0c;且效率页能接近物理…...

C++核心编程:类与对象全面解析

C核心编程&#xff1a;类与对象全面解析 大家好&#xff01;今天我要和大家深入探讨C面向对象编程中最核心的概念&#xff1a;类与对象。&#x1f468;‍&#x1f4bb; 这是我们迈向高级C开发的第一步&#xff0c;掌握好这部分内容&#xff0c;对未来学习更高级的设计模式和框…...

Linux基础命令和文件系统结构:从入门到实践

目录 1. 引言 2. Linux文件系统结构概述 2.1 根目录 ​编辑 2.2 常见目录介绍&#xff1a; 1. /home&#xff1a;用户的家目录 2. /etc&#xff1a;存放配置文件的目录 3. /var&#xff1a;可变数据 4. /bin 和 /sbin&#xff1a;常见命令和系统管理工具 5. /tmp&…...

「Mac畅玩AIGC与多模态05」部署篇03 - 在 Mac 上部署本地向量化模型(Embedding Models)

一、概述 本篇介绍如何在 macOS 环境下,为 Dify 平台部署本地向量化模型(Embedding Models),支持知识库文档向量化、语义检索与智能体上下文增强。向量化模型是实现知识库问答与 RAG(检索增强生成)应用的基础组件。 二、部署流程 1. 环境准备 确认 Docker Desktop 正常…...

Java-Optional类

介绍 Optional是 Java 8 引入的一个类&#xff0c;用于解决空指针异常问题。它本质上是一个容器类&#xff0c;可以包含或不包含一个非空值。 示例 创建Optional对象 Optional.of(T value)&#xff1a;创建一个包含非空值的Optional对象。如传入null值&#xff0c;会抛出Nu…...

Android 热点开发调试总结

Android 热点开发调试总结 文章目录 Android 热点开发调试总结一、前言二、热点开发1、开关和默认配置wifi和热点配置信息保存的位置&#xff1a; 2、主要流程3、相关日志4、相关广播5、demo示例 三、其他1、Android 热点开发调试小结2、其他热点相关知识小结&#xff08;1&…...

【“星瑞” O6 评测】 — llm CPU部署对比高通骁龙CPU

前言 随着大模型应用场景的不断拓展&#xff0c;arm cpu 凭借其独特优势在大模型推理领域的重要性日益凸显。它在性能、功耗、架构适配等多方面发挥关键作用&#xff0c;推动大模型在不同场景落地 1. CPU对比 星睿 O6 CPU 采用 Armv9 架构&#xff0c;集成了 Armv9 CPU 核心…...

快乐数(双指针解法)

题目链接202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 题目拆解 1 取一个正整数每一位的平方和为&#xff0c;如果为1那么直接可以判定为快乐数&#xff0c;如果不为1&#xff0c;就重复这个过程&#xff0c;直到出现1 2 实际上&#xff0c;这道题只有两种情况&#xf…...