【工具】jsDelivr CDN完全指南:免费高速的开源项目CDN服务

前言

在现代Web开发中,内容分发网络(CDN)已经成为提升网站性能的重要工具。jsDelivr作为一个免费、快速、可靠的开源CDN服务,为全球开发者提供了优质的静态资源分发服务。无论是加速GitHub仓库访问、分发npm包,还是为开源项目提供CDN支持,jsDelivr都是开发者的首选方案。本文将全面介绍jsDelivr的使用方法、配置技巧和最佳实践。

一、jsDelivr简介

(一)什么是jsDelivr

jsDelivr是一个免费的开源CDN(Content Delivery Network),专门为开源项目提供快速、可靠的静态资源分发服务。它支持多种资源来源,包括GitHub、npm、WordPress等。

1. 核心特性

  • 完全免费:无需注册,无使用费用
  • 全球覆盖:超过750个CDN节点遍布全球
  • 高性能:智能路由和缓存策略
  • 多源支持:GitHub、npm、WordPress等多种来源
  • 高可用性:99.9%的服务可用性保证

2. 服务优势

**速度优势**
- 全球CDN节点就近访问
- 智能缓存和压缩
- HTTP/2和HTTP/3支持**稳定性优势**
- 多重备份机制
- 自动故障转移
- 24/7监控服务**易用性优势**
- 无需注册即可使用
- 简单的URL格式
- 丰富的API接口

(二)jsDelivr的工作原理

1. 基本架构

命中
未命中
用户请求
jsDelivr CDN
缓存检查
返回缓存内容
从源站获取
GitHub/npm/WordPress
缓存并返回

2. 缓存策略

  • 智能缓存:根据文件类型和访问频率自动调整缓存时间
  • 版本控制:支持特定版本和最新版本的缓存
  • 全球同步:确保全球节点内容一致性

(三)支持的资源类型

1. GitHub仓库

# 基本格式
https://cdn.jsdelivr.net/gh/用户名/仓库名@版本号/文件路径# 示例
https://cdn.jsdelivr.net/gh/jquery/jquery@3.6.0/dist/jquery.min.js

2. npm包

# 基本格式
https://cdn.jsdelivr.net/npm/包名@版本号/文件路径# 示例
https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.js

3. WordPress插件

# 基本格式
https://cdn.jsdelivr.net/wp/plugins/插件名/版本号/文件路径# 示例
https://cdn.jsdelivr.net/wp/plugins/contact-form-7/5.7.7/includes/css/styles.css

二、GitHub仓库加速

(一)基本使用方法

1. URL格式规则

# 完整格式
https://cdn.jsdelivr.net/gh/用户名/仓库名@分支或标签/文件路径# 使用默认分支(推荐)
https://cdn.jsdelivr.net/gh/用户名/仓库名/文件路径# 指定分支
https://cdn.jsdelivr.net/gh/用户名/仓库名@main/文件路径# 指定标签版本
https://cdn.jsdelivr.net/gh/用户名/仓库名@v1.0.0/文件路径

2. 实际应用示例

图片资源加速
<!-- GitHub原始链接(慢) -->
<img src="https://raw.githubusercontent.com/uwakeme/my-images/main/logo.png"><!-- jsDelivr CDN链接(快) -->
<img src="https://cdn.jsdelivr.net/gh/uwakeme/my-images/logo.png">
JavaScript库加速
<!-- 加载开源JavaScript库 -->
<script src="https://cdn.jsdelivr.net/gh/highlightjs/highlight.js@11.8.0/build/highlight.min.js"></script><!-- 加载CSS样式文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/highlight.js@11.8.0/build/styles/default.min.css">

(二)图床应用场景

1. 博客图片托管

# 在Markdown中使用
![图片描述](https://cdn.jsdelivr.net/gh/username/image-repo/images/photo.jpg)# 在HTML中使用
<img src="https://cdn.jsdelivr.net/gh/username/image-repo/images/photo.jpg" alt="图片描述">

2. PicGo配置

{"repo": "username/image-hosting","branch": "main","token": "your_github_token","path": "images/","customUrl": "https://cdn.jsdelivr.net/gh/username/image-hosting"
}

3. 批量图片处理

// 批量转换GitHub链接为jsDelivr链接
function convertToJsDelivr(githubUrl) {const regex = /https:\/\/raw\.githubusercontent\.com\/([^\/]+)\/([^\/]+)\/([^\/]+)\/(.+)/;const match = githubUrl.match(regex);if (match) {const [, user, repo, branch, path] = match;return `https://cdn.jsdelivr.net/gh/${user}/${repo}@${branch}/${path}`;}return githubUrl;
}// 使用示例
const originalUrl = "https://raw.githubusercontent.com/user/repo/main/image.jpg";
const cdnUrl = convertToJsDelivr(originalUrl);
console.log(cdnUrl); // https://cdn.jsdelivr.net/gh/user/repo@main/image.jpg

(三)版本管理策略

1. 使用标签版本(推荐)

# 使用具体版本标签,确保稳定性
https://cdn.jsdelivr.net/gh/jquery/jquery@3.6.0/dist/jquery.min.js# 使用语义化版本范围
https://cdn.jsdelivr.net/gh/jquery/jquery@3/dist/jquery.min.js  # 最新3.x版本

2. 使用分支版本

# 使用主分支(内容可能变化)
https://cdn.jsdelivr.net/gh/username/repo@main/file.js# 使用开发分支
https://cdn.jsdelivr.net/gh/username/repo@develop/file.js

3. 版本选择建议

**生产环境**
- 使用具体的标签版本
- 避免使用分支名称
- 定期更新版本**开发环境**
- 可以使用分支名称
- 便于测试最新功能
- 注意缓存问题

三、npm包分发服务

(一)npm包CDN使用

1. 基本语法

# 完整格式
https://cdn.jsdelivr.net/npm/包名@版本号/文件路径# 使用最新版本
https://cdn.jsdelivr.net/npm/包名/文件路径# 指定版本范围
https://cdn.jsdelivr.net/npm/包名@^1.0.0/文件路径

2. 常用前端库示例

Vue.js
<!-- Vue 3 -->
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js"></script><!-- Vue 2 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
React
<!-- React 开发版 -->
<script src="https://cdn.jsdelivr.net/npm/react@18/umd/react.development.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@18/umd/react-dom.development.js"></script><!-- React 生产版 -->
<script src="https://cdn.jsdelivr.net/npm/react@18/umd/react.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/react-dom@18/umd/react-dom.production.min.js"></script>
工具库
<!-- Lodash -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js"></script><!-- Moment.js -->
<script src="https://cdn.jsdelivr.net/npm/moment@2/moment.min.js"></script><!-- Axios -->
<script src="https://cdn.jsdelivr.net/npm/axios@1/dist/axios.min.js"></script>

(二)包文件浏览

1. 浏览包内容

# 查看包的所有文件
https://cdn.jsdelivr.net/npm/包名/# 查看特定版本的文件
https://cdn.jsdelivr.net/npm/包名@版本号/# 示例:查看Vue包内容
https://cdn.jsdelivr.net/npm/vue@3/

2. 自动文件选择

# jsDelivr会自动选择合适的文件
https://cdn.jsdelivr.net/npm/vue@3  # 自动选择 dist/vue.global.js# 手动指定文件
https://cdn.jsdelivr.net/npm/vue@3/dist/vue.esm-browser.js

(三)组合加载功能

1. 多文件合并

<!-- 合并多个文件为一个请求 -->
<script src="https://cdn.jsdelivr.net/combine/npm/jquery@3,npm/bootstrap@5/dist/js/bootstrap.bundle.min.js"></script><!-- 合并CSS文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/combine/npm/bootstrap@5/dist/css/bootstrap.min.css,npm/font-awesome@6/css/all.min.css">

2. 压缩和优化

# 自动压缩(添加.min后缀)
https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.min.js# 原始文件
https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js

四、高级功能与配置

(一)API接口使用

1. 包信息查询

// 获取包的基本信息
fetch('https://data.jsdelivr.com/v1/package/npm/vue').then(response => response.json()).then(data => console.log(data));// 获取包的版本列表
fetch('https://data.jsdelivr.com/v1/package/npm/vue/versions').then(response => response.json()).then(data => console.log(data));

2. 文件列表查询

// 获取包的文件列表
fetch('https://data.jsdelivr.com/v1/package/npm/vue@3/flat').then(response => response.json()).then(data => console.log(data.files));// 获取GitHub仓库文件列表
fetch('https://data.jsdelivr.com/v1/package/gh/jquery/jquery@3.6.0/flat').then(response => response.json()).then(data => console.log(data.files));

3. 统计信息查询

// 获取包的下载统计
fetch('https://data.jsdelivr.com/v1/package/npm/vue/stats').then(response => response.json()).then(data => console.log(data));

(二)缓存控制

1. 缓存策略理解

**默认缓存时间**
- 稳定版本:7天
- 预发布版本:1天
- 分支版本:12小时**缓存刷新**
- 自动刷新:根据版本更新
- 手动刷新:通过API接口

2. 缓存刷新方法

// 通过API刷新缓存
fetch('https://purge.jsdelivr.net/npm/package@version/file', {method: 'POST'
});// 示例:刷新特定文件缓存
fetch('https://purge.jsdelivr.net/npm/vue@3/dist/vue.global.js', {method: 'POST'
});

(三)性能优化技巧

1. 预加载和预连接

<!-- DNS预解析 -->
<link rel="dns-prefetch" href="//cdn.jsdelivr.net"><!-- 预连接 -->
<link rel="preconnect" href="https://cdn.jsdelivr.net"><!-- 预加载关键资源 -->
<link rel="preload" href="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js" as="script">

2. 资源优先级控制

<!-- 高优先级资源 -->
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js" defer></script><!-- 低优先级资源 -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js" async></script>

3. 错误处理和回退

<script>
// CDN加载失败时的回退方案
function loadScript(src, fallback) {const script = document.createElement('script');script.src = src;script.onerror = function() {console.warn('CDN加载失败,使用备用源');const fallbackScript = document.createElement('script');fallbackScript.src = fallback;document.head.appendChild(fallbackScript);};document.head.appendChild(script);
}// 使用示例
loadScript('https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js','/local/vue.global.js'  // 本地备用文件
);
</script>

五、实际应用案例

(一)个人博客优化

1. 静态资源CDN化

<!DOCTYPE html>
<html>
<head><!-- CSS库 --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css"><!-- 自定义样式(通过GitHub仓库) --><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/username/blog-assets/css/custom.css">
</head>
<body><!-- JavaScript库 --><script src="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/js/bootstrap.bundle.min.js"></script><script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-core.min.js"></script><!-- 自定义脚本 --><script src="https://cdn.jsdelivr.net/gh/username/blog-assets/js/main.js"></script>
</body>
</html>

2. 图片资源优化

<!-- 博客文章中的图片 -->
![文章配图](https://cdn.jsdelivr.net/gh/username/blog-images/posts/article-1/cover.jpg)<!-- 头像和Logo -->
![头像](https://cdn.jsdelivr.net/gh/username/blog-images/avatar.jpg)
![Logo](https://cdn.jsdelivr.net/gh/username/blog-images/logo.svg)

(二)开源项目文档

1. 文档站点资源

<!-- 文档主题样式 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css"><!-- 文档功能插件 -->
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>

2. 示例代码托管

// 在文档中引用GitHub仓库的示例代码
const exampleUrl = 'https://cdn.jsdelivr.net/gh/username/project-examples/basic-usage.js';fetch(exampleUrl).then(response => response.text()).then(code => {document.getElementById('code-example').textContent = code;});

(三)企业级应用

1. 微前端架构

// 动态加载微应用资源
const loadMicroApp = async (appName, version) => {const baseUrl = `https://cdn.jsdelivr.net/gh/company/${appName}@${version}`;// 加载CSSconst link = document.createElement('link');link.rel = 'stylesheet';link.href = `${baseUrl}/dist/app.css`;document.head.appendChild(link);// 加载JavaScriptconst script = document.createElement('script');script.src = `${baseUrl}/dist/app.js`;document.head.appendChild(script);
};// 使用示例
loadMicroApp('user-management', 'v1.2.0');

2. 组件库分发

<!-- 企业组件库 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/company/ui-components@latest/dist/components.css">
<script src="https://cdn.jsdelivr.net/gh/company/ui-components@latest/dist/components.js"></script><!-- 特定版本的组件 -->
<script src="https://cdn.jsdelivr.net/gh/company/ui-components@v2.1.0/dist/button.js"></script>

六、最佳实践与注意事项

(一)使用最佳实践

1. 版本管理策略

**生产环境建议**
- 使用具体的版本号,避免使用latest
- 定期更新依赖版本
- 建立版本回退机制**开发环境建议**
- 可以使用分支名称进行测试
- 注意缓存对开发的影响
- 使用本地开发服务器作为备用

2. 性能优化建议

<!-- 资源预加载 -->
<link rel="preload" href="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js" as="script"><!-- 关键CSS内联 -->
<style>/* 关键样式内联,非关键样式使用CDN */
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5/dist/css/bootstrap.min.css" media="print" onload="this.media='all'"><!-- 非阻塞加载 -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4/lodash.min.js" defer></script>

3. 安全性考虑

<!-- 使用SRI确保文件完整性 -->
<script src="https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.js" integrity="sha384-..." crossorigin="anonymous"></script><!-- CSP策略配置 -->
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://cdn.jsdelivr.net; style-src 'self' https://cdn.jsdelivr.net;">

(二)常见问题解决

1. 缓存问题

// 强制刷新缓存的方法
const timestamp = Date.now();
const url = `https://cdn.jsdelivr.net/gh/username/repo/file.js?t=${timestamp}`;// 或者使用版本号
const version = '1.0.1';
const url = `https://cdn.jsdelivr.net/gh/username/repo@v${version}/file.js`;

2. 访问限制

**文件大小限制**
- 单个文件最大50MB
- 建议将大文件分割或压缩**仓库大小限制**
- GitHub仓库建议不超过1GB
- 定期清理不必要的文件**流量限制**
- 个人使用通常不会触及限制
- 商业用途建议联系jsDelivr团队

3. 故障处理

// 多CDN备用方案
const cdnSources = ['https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.js','https://unpkg.com/vue@3/dist/vue.global.js','/local/vue.global.js'
];function loadWithFallback(sources, index = 0) {if (index >= sources.length) {console.error('所有CDN源都无法访问');return;}const script = document.createElement('script');script.src = sources[index];script.onload = () => console.log(`成功加载: ${sources[index]}`);script.onerror = () => loadWithFallback(sources, index + 1);document.head.appendChild(script);
}loadWithFallback(cdnSources);

七、总结

jsDelivr作为一个优秀的免费CDN服务,为全球开发者提供了强大的静态资源分发能力。通过本文的详细介绍,您应该能够:

(一)核心收获

  1. 理解jsDelivr:掌握jsDelivr的基本概念和工作原理
  2. 熟练使用:能够正确配置和使用各种jsDelivr服务
  3. 性能优化:通过CDN显著提升网站访问速度
  4. 最佳实践:遵循安全和性能的最佳实践

(二)应用场景

1. 个人项目

  • 博客图床:GitHub + jsDelivr的完美组合
  • 静态网站:加速CSS、JS等静态资源
  • 开源项目:为项目提供可靠的CDN支持

2. 企业应用

  • 微前端:动态加载和分发微应用资源
  • 组件库:企业级组件的CDN分发
  • 文档站点:技术文档的资源优化

(三)发展趋势

随着Web技术的不断发展,CDN服务也在持续演进:

  1. 边缘计算:更靠近用户的内容分发
  2. 智能优化:AI驱动的缓存和路由策略
  3. 安全增强:更强的内容安全和完整性保护
  4. 生态整合:与更多开发工具和平台的深度集成

jsDelivr作为开源CDN的领导者,将继续为开发者提供更好的服务。掌握jsDelivr的使用,不仅能提升项目性能,更是现代Web开发的必备技能。

记住,好的CDN服务配合正确的使用方法,才能发挥最大的价值。希望本文能帮助您更好地使用jsDelivr,提升您的Web项目性能!

参考资料

  • jsDelivr官方网站
  • jsDelivr GitHub仓库
  • jsDelivr API文档
  • CDN最佳实践指南

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/93906.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSPF笔记整理

一、OSPF 基础特性1. 技术背景&#xff08;对比 RIP&#xff09;RIP 的缺陷&#xff1a;最大跳数 15 限制、周期性发送全路由表&#xff08;占用带宽&#xff09;、收敛慢、以跳数为度量值、易产生环路、30 秒更新间隔。OSPF 的改进&#xff1a;无跳数限制&#xff08;支持大规…

sqLite 数据库 (3):以编程方式使用 sqLite,4 个函数,以及 sqLite 移植,合并编译

&#xff08;22&#xff09; 只有四个函数 &#xff1a;以及 &#xff1a;&#xff08;23&#xff09;以及 &#xff1a;&#xff08;24&#xff09;&#xff08;25&#xff09; sqLite 的源代码很少 &#xff1a;&#xff08;26&#xff09;&#xff08;27&#xff09;&#x…

Nginx跨域问题与 MIME 类型错误深度排错指南:解决 MIME type of “application/octet-stream“ 报错

前言&#xff1a;在 Web 开发中&#xff0c;跨域请求和资源加载错误是前端工程师和运维人员经常遇到的棘手问题。本文将详细解析 Nginx 环境下跨域配置的多种方案、gzip 类型参数的优化要点&#xff0c;以及.mjs 文件 MIME 类型错误的解决方法&#xff0c;并结合排错思路和原理…

什么是大端?什么是小端?如何验证?

什么是大端&#xff1f;什么是小端&#xff1f;如何验证&#xff1f; 在计算机系统中&#xff0c;大端&#xff08;Big-Endian&#xff09; 和小端&#xff08;Little-Endian&#xff09; 是两种不同的字节序&#xff08;Byte Order&#xff09;&#xff0c;用于描述多字节数据…

JavaScript 语句和函数

1. JavaScript 语句 1&#xff09;if语句 if (condition) statement1 else statement2这里的条件&#xff08;condition&#xff09;可以是任何表达式&#xff0c;并且求值结果不一定是布尔值。 ECMAScript会自动调用Boolean()函数将这个表达式的值转换为布尔值。 如果条件…

代码随想录刷题Day22

替换数字 这道题比较简单&#xff0c;遇到字母就copy到新的字符数组&#xff0c;如果是遇到数字&#xff0c;就在新字符数组中加入number的字符串。代码如下&#xff1a; #include<stdio.h> #include<ctype.h> #include<string.h> #define Max 1000000 int…

逻辑回归参数调优实战指南

逻辑回归的参数调节参数展示 LogisticRegression(penaltyl2,dualFalse,tol1e4,C1.0,fit_interceptTrue,intercept_scaling1,class_weightNone,random_stateNone,solverliblinear,max_iter100,multi_classovr,verbose0,warm_startFalse, n_jobs1)在前面的学习中&#xff0c;我们…

cocosCreator2.4 googlePlay登录升级、API 35、16KB内存页面的支持

环境&#xff1a;我这里是cocosCreator 2.4.12 导出的android 工程 登录升级 后台收到的google 的提醒&#xff1a; 之前是通过implementation com.google.android.gms:play-services-auth:20.0.0 来获取玩家 uid 和 邮箱&#xff0c;然后发送到我们的服务器获取账号。 升级…

unity avpro实现互动影游关键问题

创建视频播放器​在Hierarchy面板中右键创建&#xff1a;Video > AVPro Video - MediaPlayer创建后会生成一个MediaPlayer对象&#xff0c;用于控制视频播放添加视频资源将视频文件放入项目的StreamingAssets文件夹下在MediaPlayer组件的设置中选择要播放的视频文件在UI上显…

【C找第一个只出现一次的字符】2022-8-18

缘由样例通过&#xff0c;请问为什么错了呢&#xff1f;(语言-c语言)-编程语言-CSDN问答 char str[100000];fgets(str, 100000, stdin);int a[26]{}, i, count 0;int len strlen(str);for (i 0; i<len; i) a[str[i] - a];for (i 0; i<len; i){if (a[str[i] - a] 1){…

MCP AI应用通信的底层机制

技术小馆专注AI与Java领域的前沿技术知识库 技术小馆官网 在AI应用快速发展的今天&#xff0c;不同AI系统之间的高效通信成为技术架构的关键挑战。MCP&#xff08;Model Context Protocol&#xff09;作为新一代AI应用通信协议&#xff0c;正在重新定义AI工具生态的构建方式。…

UI测试平台TestComplete如何实现从Git到Jenkins的持续测试

还在为手动做UI测试又慢又累发愁&#xff1f;更头痛的是&#xff0c;代码改完还得等半天才能测&#xff0c;测完了结果又散得到处都是&#xff0c;根本看不清质量全貌?TestComplete帮你搞定&#xff1a;直接连上你的Git仓库&#xff0c;代码一有动静就能感知。接着&#xff0c…

【Debian】4-‌2 Gitea搭建

【Debian】4-‌2 Gitea搭建一、准备工作二、创建 Gitea 用户&#xff08;推荐&#xff09;三、下载并安装 Gitea四、配置Gitea4-1 创建目录结构4-2 创建配置目录五、配置 Systemd 服务六、访问 Gitea Web 界面七、小插曲一、准备工作 更新系统软件为最新 sudo apt update &am…

【CDH × Docker】一次测试部署,N 次复用的环境镜像方案

&#x1f680; 一次测试环境的探索&#xff1a;我如何将 CDH 集群打包成 Docker 镜像&#xff0c;留给未来的自己 &#x1f9e9; 背景故事 最近在项目中&#xff0c;我们计划上线一个基于 CDH&#xff08;Cloudera Distribution Hadoop&#xff09; 的大数据平台。正式上生产环…

Java 日期时间格式化模式说明

Java 中日期时间格式化使用特定的模式字符串来定义输出格式。以下是常见的格式化符号及其含义&#xff0c;适用于 SimpleDateFormat 和 DateTimeFormatter一、日期部分格式化符号符号含义示例y年 (Year)yyyy → 2023M月 (Month)MM → 09, MMM → Sep, MMMM → Septemberd月中的…

代码随想录算法训练营三十三天|动态规划part06

LeetCode 322 零钱兑换 题目链接&#xff1a;322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。…

【大模型LLM】大模型训练加速 - 梯度累积(Gradient Accumulation)原理详解

梯度累积&#xff08;Gradient Accumulation&#xff09;原理详解 梯度累积是一种在深度学习训练中常用的技术&#xff0c;特别适用于显存有限但希望使用较大批量大小&#xff08;batch size&#xff09;的情况。通过梯度累积&#xff0c;可以在不增加单个批次大小的情况下模拟…

【数据分享】各省文旅融合耦合协调度及原始数据(2012-2022)

数据介绍引言 文旅融合是推动区域经济高质量发展、促进共同富裕的重要路径。党的二十大报告明确提出“推进文化和旅游深度融合发展”的战略目标&#xff0c;文旅产业通过资源整合与业态创新&#xff0c;可显著缩小城乡、区域差距&#xff0c;提升物质与精神双重福祉&#xff08…

Linux编程: 10、线程池与初识网络编程

今天我计划通过一个小型项目&#xff0c;系统讲解线程池与网络编程的核心原理及实践。项目将围绕 “利用线程池实现高并发网络通信” 这一核心需求展开&#xff0c;具体设计如下&#xff1a; 为保证线程安全&#xff0c;线程池采用单例模式设计&#xff0c;确保全局唯一实例避…

藏云阁 Logo 库(开源项目SVG/PNG高清Logo)

在日常技术方案设计、架构图绘制或PPT制作中&#xff0c;常常会遇到一些问题&#xff0c;比如&#xff1a; 找不到统一风格的开源项目组件图标&#xff0c;PPT中的logo五花八门下载的图标分辨率不足&#xff0c;放大后模糊失真不同来源的图标颜色风格冲突&#xff0c;破坏整体…