- 博客(717)
- 资源 (51)
- 收藏
- 关注
原创 新手如何学好C语言?
作为一名资深码农,在软件行业也拼搏了十多年,这里跟想学习C语言的萌新童鞋分享下我的个人学习心得!!!在大学时代,我们大二才开始学习C语言(起步有点晚啊),第一次看到那本黄黄的谭浩强老师的《c语言教程》,哈哈哈,就是这本了,满满的回忆啊!开学拿到这本书后,心情很激动,因为以前总是羡慕那种黑客,好像很牛的样子, 抱着好奇的心理随便翻开了几页看了看,全程一脸懵逼, 因为以前从来没有接触过编程...
2020-04-27 13:59:47
2810
3
原创 一个普通的计算机专业专科生,毕业后想拿高薪,大学三年具体应该怎么做?
最近有一位大一的童鞋问我:黄老师, 我现在是一个普通院校的专科,学历含金量并不高,随大流选了一个计算机专业,很迷茫,不知道毕业后能干嘛,但我还是不想虚度大学三年,因为家境并不好,想通过自己努努力毕业能拿一份不错的薪水,能给点建议吗?其实也不是这一位同学向我咨询类似的问题,这几年其实蛮多的普通院校大学生都感到压力,因为没有名校背景,没有较高的学历,大学毕业后,只能进入普...
2020-04-24 16:45:34
4929
原创 全套C C++ 编程视频课程收录
【C语言】小白可以短时间很快入门的《从小白入门C语言视频课程》http://edu.csdn.net/course/detail/5895然后C语言中为核心知识点,附上指《C语言指针精讲视频课程》http://edu.csdn.net/course/detail/5896指针是重点《30分钟学会C语言指针视频课程》https://edu.csdn.net/cou...
2017-10-27 14:58:48
11607
原创 新手如何学好C++?
最近,很多学员都给我发邮件问我应该如何学习C++,如何学好C++?那么作为一个从C语言小白摸爬滚打、入坑无数到成长为如今的高级C++游戏开发工程师、高级C++服务端工程师、项目经理、技术总监、我想跟大家分享下我自己的学习心得与体会!Linus曾说过:“C++是一门很恐怖的语言,而比它更恐怖的是很多不合格的程序员在使用着它”,这个世界上最难的编程语言可能非C++莫属了,呵呵,虽然有点夸...
2017-10-10 09:32:28
22385
6
原创 Linux 文件描述符、端口、进程与线程数量上限分析
Linux 系统资源限制是一个复杂的多层次体系,包括系统级、进程级、用户级等多个维度。理解这些限制不仅有助于系统调优,更能避免在高并发场景下的意外问题。核心要点文件描述符:默认 1024,建议调至 65536+端口数量:理论 65536,实际受 TIME_WAIT 等影响进程数量:受 PID 空间和内存双重限制线程数量:内存是主要瓶颈,建议控制在合理范围在实际应用中,应根据具体业务场景进行针对性调优,并持续监控系统资源使用情况,确保系统稳定运行。参考资料man 5 proc。
2026-01-23 11:26:58
41
原创 一分钟了解时序数据库(TSDB)
时序数据(Time Series Data)是按时间顺序时间戳(Timestamp):精确到毫秒/微秒指标值(Value):数值(整数/浮点)、状态(布尔)、或结构化数据元数据(Tags/Labels):用于标识和分类(如。
2026-01-21 14:23:30
654
原创 Zabbix、Falcon、Prometheus监控系统
在云原生、微服务、高并发的时代,系统复杂度指数级增长。一个请求可能穿越数十个服务、上百个容器。。监控系统(Observability Platform)已成为现代 IT 基础设施的“中枢神经系统”。(传统王者)、(国产高性能代表)、(云原生事实标准),从架构、数据模型、扩展性、适用场景等维度进行全方位对比,助你做出理性选型。
2026-01-21 11:19:08
639
原创 Gradio用几行代码构建 AI Web 应用
Gradio 由等人于 2019 年创建,现已成为 Hugging Face 生态的重要组成部分(2022 年被 Hugging Face 收购)。“让 AI 模型的演示变得像写函数一样简单。无论你是在做图像分类、文本生成、语音识别,还是简单的数学计算,Gradio 都能自动为你生成一个美观、响应式的 Web UI。
2026-01-19 22:13:08
751
原创 一分钟了解Hugging Face
Hugging Face 最初是一家专注于聊天机器人的创业公司,但在 2018 年左右,团队意识到 NLP 领域缺乏一个统一、易用的模型共享平台。于是,他们转向构建一个开源模型库和工具集,并迅速因发布Transformers 库而声名鹊起。如今,Hugging Face 被誉为 “AI 领域的 GitHub”,其使命是“让优秀的机器学习民主化”Hugging Face 不仅仅是一个工具库,它代表了一种协作、开放、共享的 AI 开发文化。
2026-01-19 22:00:42
872
原创 主流向量数据库全面解析
随着大语言模型(LLM)的快速发展,RAG(检索增强生成)技术成为解决模型“幻觉”、提升专业领域回答精度的核心方案,而向量数据库则是RAG技术的底层支撑。向量数据库专门用于存储、管理和检索高维嵌入向量(Embedding),通过高效的相似度匹配算法,快速从海量数据中找到与查询向量最相关的结果。FAISS是由Meta(原Facebook)AI团队开源的轻量级向量检索库,并非严格意义上的“完整数据库”,而是专注于高维向量的高效相似度检索的核心算法库。
2026-01-11 18:09:18
757
原创 Tavily 库
Tavily 是一个功能强大且易于使用的 Python 库,适合各种网络数据采集需求。通过灵活的配置和丰富的功能,用户可以高效地完成数据抓取和解析任务。无论是简单的数据提取还是复杂的自动化流程,Tavily 都能提供可靠的解决方案。
2026-01-11 13:01:54
49
原创 C/C++高性能正则表达式库深度解析
C/C++高性能正则表达式库的选型,本质是“业务需求”与“库特性”的匹配过程。没有绝对最优的库,只有最适合场景的库——PCRE2胜在功能全面,RE2赢在高性能与稳定性,Hyperscan专攻多模式匹配,Oniguruma则在多字符集处理中脱颖而出。在实际开发中,建议结合自身业务场景(如文本长度、正则复杂度、字符集、模式数量)进行性能测试,同时善用预编译、JIT等优化技巧,才能让正则表达式在高效处理字符串任务的同时,不成为系统的性能瓶颈。
2025-12-08 21:20:24
216
原创 C++性能分析相关库
Flame Graph(火焰图)由Netflix性能工程师Brendan Gregg于2011年提出,是一种基于调用栈的性能可视化图表。它以“火焰”的形态直观展示程序运行时的函数调用关系及CPU占用情况——每一根“火焰”代表一个函数调用栈,纵轴表示调用深度(栈的深度),横轴表示函数的CPU占用时间(或执行频率),颜色则用于区分不同的函数模块。
2025-12-08 21:04:42
83
原创 shared_ptr循环引用导致无法释放
特性shared_ptrweak_ptr引用计数影响增加/减少计数不影响计数直接访问对象支持(operator* / ->)不支持(需 lock() 转换)循环引用影响导致计数闭环,内存泄漏不参与计数,打破闭环生命周期依赖与对象生命周期绑定(计数>0则对象存活)不绑定(对象可能已被释放)核心逻辑链shared_ptr 循环引用 → 互相持有对方的 shared_ptr → 引用计数闭环 → 计数永远>0 → 对象无法释放;
2025-12-01 10:13:03
47
原创 深入理解 C++ 中的 std::bind:函数绑定的艺术
std::bindstd::bind是 C++ 函数式编程的重要工具,尽管在 Lambda 表达式普及后使用频率下降,但在参数重排、成员函数适配、与旧 API 交互等场景中依然不可替代。理解其工作原理和潜在陷阱,能让你在复杂系统中更灵活地组织代码。最佳实践建议优先考虑 Lambda 表达式必要时使用std::bind,尤其涉及成员函数或参数重排注意对象生命周期和引用语义C++20 用户可尝试参考资料t=P9T8。
2025-11-25 21:23:47
97
原创 两大公共DNS服务器 114.114.114.114 与 8.8.8.8解析
8.8.8.8是 Google 提供的全球公共 DNS 服务,于 2009 年推出。其 IPv6 地址为,备用地址为8.8.4.4。如果你是中国大陆普通用户,追求稳定、快速访问国内服务,114.114.114.114 是首选。如果你是开发者、海淘用户或注重隐私安全,且网络环境允许,8.8.8.8 提供更开放、加密的体验。
2025-11-22 15:01:10
1697
原创 VS Code去除顶部 冻结的窗口
从Setting中搜索sticky scroll,找到Editor中的取消勾选即可。我们发现VSCode顶部会有一段窗口,不随着滚动条而滚动,占用一部分窗口。
2025-10-26 11:31:28
135
原创 常用的C++压测框架
Nonius 是一个 C++ 的微基准测试库,专注于提供高精度的性能测量工具。它基于 C++11 标准,设计简洁且易于集成,适合需要精确测量代码段执行时间的场景。Hayai 是另一个 C++ 微基准测试框架,特点是轻量级和易用性,适合快速验证代码性能。Google Benchmark是一个广泛使用的微基准测试框架,专门用于测量小段代码的执行时间。它提供了丰富的功能来帮助开发者准确评估代码性能。Celero是另一个流行的C++基准测试框架,特点是轻量级和易用性。它支持基本测试和比较测试两种模式。
2025-10-10 21:07:14
141
原创 C/C++正则表达式PCRE2库
PCRE2是PCRE(Perl Compatible Regular Expressions)库的第二代版本,旨在提供与Perl 5编程语言中正则表达式功能高度兼容的实现。它由Philip Hazel最初开发,并由社区持续维护和改进。PCRE2不仅继承了PCRE的强大功能,还在性能、内存管理、API设计和功能扩展上进行了显著优化。兼容性:尽可能与Perl 5.20+的正则表达式语法和语义保持一致。可移植性:支持多种操作系统和硬件架构。高效性:提供快速的模式匹配和低内存开销。灵活性。
2025-09-21 21:13:27
241
原创 VirtualBox 7 虚拟机的硬盘如何扩大?
底部的滑块可以选择新的磁盘大小,自己调整的大一些!这个时候只是你的硬盘增大了,但是你的系统并未使用!右键- 刚刚新增的磁盘-扩展卷,一直下一步就行了!虚拟机分配的硬盘小了,还想扩大怎么办?接下来,使用自带的磁盘工具。
2025-09-21 00:06:15
233
原创 互联网大厂的QPS性能指标 P90、P95、P99
每秒处理的请求数量。它是衡量系统吞吐能力最直观的指标。如果你的 API 每秒能处理 10,000 个请求,那么 QPS = 10k。双十一期间,淘宝的某些核心接口 QPS 超过百万级。抖音推荐系统的 QPS 可达数百万甚至千万级。“P99 不降,新功能不上。这不是一句口号,而是对用户体验的敬畏。QPS 决定了你能扛住多少流量,P90/P95/P99 则决定了你是否值得被用户信赖。当你下次看到监控图表上那个微微上扬的 P99 曲线时,请记住:那不是一条冷冰冰的数据线,
2025-09-19 10:39:56
1265
原创 git submodule命令详解
Git Submodule 是管理项目依赖和共享代码的强大工具。它通过将外部仓库作为独立的子单元引入,既实现了代码复用,又保持了各仓库的独立性和版本控制的清晰性。
2025-09-17 23:21:33
284
原创 Git回退到某个版本并且删除后面的提交记录
现在有个场景: 希望my项目还原到A提交的版本,并且让gitl后面的B C 提交消失,就像从来没提交过一样!分支将只保留到A提交的历史,B和C提交会从分支历史中彻底消失,就像从未存在过一样。假设某个项目的my分支 按顺序有 A ,B ,C 三次提交。找到A提交的哈希值(可通过。
2025-09-17 00:13:44
512
原创 JuiceFS分布式文件系统
简单来说,JuiceFS 是一个基于 POSIX 的分布式文件系统,它的核心设计理念是“将元数据与数据分离存储数据(Data)存储在对象存储中(如 AWS S3、阿里云 OSS、腾讯云 COS 等)元数据(Metadata)存储在独立的数据库中(支持 Redis、MySQL、TiKV、SQLite 等)客户端通过 FUSE 模块挂载 JuiceFS 文件系统,像操作本地磁盘一样进行读写这种架构让 JuiceFS 同时具备了对象存储的无限扩展能力与本地文件系统的完整语义支持。
2025-09-08 23:31:54
1042
原创 大厂的服务器自动扩缩容
大厂的服务器自动扩缩容是一套**“技术工具+业务逻辑+优化策略”** 的综合体系,核心是围绕“稳定性”和“成本”两个目标,通过“监控-决策-执行-反馈”的闭环,实现资源的动态匹配。其演进方向是从“被动响应”到“主动预测”,从“单集群”到“跨区域”,最终实现“零人工干预、极致弹性”的资源管理。对于中小团队,可从基础方案入手(如Kubernetes+KEDA+Prometheus),逐步引入预测、预热等优化策略,最终实现类似大厂的弹性能力。
2025-09-08 23:14:46
1114
原创 彻底搞懂解形式化语法 BNF 和 EBNF
数字> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"这行规则的意思是:“一个<数字>可以是字符 ‘0’,或者 ‘1’,或者 ‘2’,……,一直到 ‘9’。一个数字可以是多位的,比如123。<数字序列> ::= <数字>| <数字> <数字序列>这行规则的意思是:“一个<数字序列>要么是一个<数字>(单个数字),要么是一个<数字>后面跟着另一个<数字序列>(递归定义,实现重复)。比如,123<数字序列>→。
2025-09-06 14:36:24
116
原创 MySQL分布式锁的本质:唯一约束 vs. 行锁机制(结合电商库存实例详解)
唯一约束锁的本质:利用数据库的数据完整性规则,通过“插入即占有”的语义实现互斥。它是一种乐观的、基于状态的锁。行级锁的本质:利用数据库的并发控制协议,通过“锁定资源”的方式阻止其他事务访问。它是一种悲观的、基于资源的锁。如果你希望实现一个通用、可靠、可重用的锁服务,选唯一约束锁。如果你在一个短小事务中直接操作库存行,且希望最严格的串行化,可以考虑FOR UPDATE,但需谨慎处理事务边界。最终建议:对于大多数分布式场景,基于唯一约束的MySQL分布式锁是更优选择。
2025-09-03 19:55:51
162
原创 Bazel 和 CMake 的区别
如果你有一个大规模的项目,并且需要高效的增量构建并行构建跨平台支持,并且项目规模较大、依赖关系复杂,Bazel可能更合适。如果你需要跨平台的构建支持,并且你希望生成适用于不同平台和编译器的构建文件,或者你的项目规模不大,CMake可能是更合适的选择。
2025-09-01 09:45:09
127
原创 十分钟快速掌握 YML YAML 文件
YML是YAML的缩写,是一种人类可读的数据序列化语言。它旨在以一种简洁、直观的方式表示数据结构,如列表、映射和标量值。YML文件通常以.yml或.yaml为扩展名。核心特点:简洁易读:使用缩进和冒号表示结构,避免了XML或JSON中的冗余符号。支持多种数据类型:包括字符串、数字、布尔值、列表、映射等。跨语言支持:大多数编程语言都有YML解析库。
2025-09-01 00:02:38
1972
原创 互联网大厂 git 分支命名规范
在互联网大厂的敏捷开发环境中,成百上千的开发者协同工作于同一个代码库。为了确保代码集成的稳定性、提高开发效率、明确责任归属并支持复杂的发布流程,一套清晰、统一且强制执行的(Branch Naming Convention)是必不可少的。
2025-08-28 00:52:27
313
原创 C++项目单元测试实战
目前,C++社区中有多个成熟的测试框架。为例进行详细讲解,因其功能全面、文档丰富,是工业级项目的首选。功能_场景_期望结果。
2025-08-27 00:16:42
267
原创 ssh-copy-id 命令简化SSH登录
是一个脚本工具,通常随OpenSSH客户端一起安装。它的主要功能是将本地用户的SSH公钥自动复制到远程主机的 文件中,从而实现基于密钥的身份验证,免去每次登录时输入密码的麻烦。 在以下场景中尤为有用:常用选项包括:在本地机器上执行以下命令生成密钥对:按提示操作,通常直接回车使用默认设置即可。生成的私钥为 ,公钥为 。将本地公钥复制到远程服务器:系统会提示你输入远程用户的密码。验证通过后,公钥将被追加到远程主机的 文件中。如果远程SSH服务运行在端口2222:指定特定的公钥文件如果你有多个密钥,
2025-08-27 00:12:02
749
原创 Boost.Asio 库中的 async_read_some用法
是类提供的一个非阻塞(异步)读取函数,用于从已连接的 TCP 套接字中读取数据。其核心特点是立即返回,不会阻塞调用线程,实际的数据读取操作在后台由 I/O 服务(io_context)完成,完成后通过回调函数通知应用程序。
2025-08-23 23:03:57
299
原创 VSCode设置一行太长,换行显示
如果我们在VSCode中一行太长,它会出现滚动条,你如果需要看完整,则需要向右拖动滚动条才可以看到,很麻烦!在 settings里面搜索 wrap,将下面的选项设置为on就行了。实际上可以设置为不显示滚动条,完整显示这行的内容!上面的2,3行,太长则换行显示了!
2025-08-23 13:43:27
924
openGL的实用工具包 GLUT库
2011-10-23
UGUI Super ScrollView 最新版2.3.2
2019-02-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅