- 博客(433)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 Linux C++ 开发8 - 性能分析工具汇总
为了减少学习成本,这里再缩减一下,其实最最常用的就是gprofValgrindPerf,只要能熟练使用者三个工具,就能解决90%的程序性能问题。大家好,我是陌尘。IT从业10年+, 北漂过也深漂过,目前暂定居于杭州,未来不知还会飘向何方。搞了8年C++,也干过2年前端;用Python写过书,也玩过一点PHP,未来还会折腾更多东西,不死不休。扫码二维码,关注微信公众号,阅读更多精彩内容。
2024-09-24 10:48:44 943
原创 Linux C++ 开发10 - 手把手教你使用valgrind性能分析工具
Valgrind是一个强大的内存分析工具,主要用于内存泄漏检测、内存访问错误和性能分析。它是一个开源工具集,包含多个工具,如MemcheckCallgrind等。Memcheck: 用于检测内存错误,如内存泄漏、非法内存访问等。Callgrind: 用于收集程序运行时的函数调用信息,帮助进行性能分析。Cachegrind: 它主要用来检查程序中缓存使用出现的问题。Helgrind: 它主要用来检查多线程程序中出现的竞争问题。Massif: 用于分析程序的内存使用情况,帮助优化内存分配。
2024-09-24 09:09:19 832
原创 Linux C++ 开发9 - 手把手教你使用gprof性能分析工具
gprof这是一个GNU的性能分析工具,它是GCC(GNU Compiler Collection,GNU编译器套件)的一部分,与GCC编译器紧密集成。可用于分析程序的函数调用关系和每个函数的运行时间。它通过在编译时插入性能分析代码来收集函数调用信息和执行时间,来帮助开发者识别性能瓶颈。可以方便的分析程序的函数调用关系和每个函数的运行时间。gprof对于代码大部分是用户空间的CPU密集型的程序用处明显。
2024-09-23 19:21:17 852
原创 字符编码发展史2 — ISO-8859-N
全称,即 国际标准化组织。它是一个全球性的非政府组织,负责制定和发布国际标准,以促进全球贸易和技术交流。全称,即 国际电工委员会。它是一个全球性的非政府组织,负责制定和发布与电气、电子和相关技术领域的国际标准。是国际标准化组织(ISO)和国际电工委员会(IEC)制定的一组字符编码标准。也经常简称ISO 8859,如``ISO 8859-1`(后面的内容均以简称的方式描述)。ISO 8859字符编码与EASCII。
2024-09-18 22:21:54 734
原创 字符编码发展史1 — ASCII和EASCII
是一套法则,使用该法则能够对自然语言使用的字符集(如字母表或音节表),与计算机能识别的二进制数字进行配对。ASCII用一个字节(Byte)的7位(bit)表示一个字符,第一位(即最高位)置0,低7位用来编码字符集,共能表达2^7(即128)个字符。用ASCII码表达英语基本上没什么问题,但是当英语中包含一些外来词(如naïve、café、élite等)时,ASCII码就没有办法表达了,所有重音符号都不得不去掉。),EASCII用8位表示一个字符,使它能多表示128个字符,支持了部分西欧字符。
2024-09-16 22:14:45 980
原创 博客建站9 - hexo网站如何提升markdown文档的编辑效率和体验
通过hexo搭建的博客网站,一般会用markdown来编写博客文章。博客的素材(如图片、视频)和文档(markdown编辑的文章内容)备份在gitee代码托管平台,通过git来更新和管理。博客的静态资源和HTML页面是部署在自己的阿里云ECS服务器上,通过nginx来提供静态资源的访问。平时通过VSCode来写文章,用markdown来保持。文章编写完成后通过hexo g -d来生成HTML页面,并部署到服务器上。在解决下面的问题之前,可以阅读《
2024-09-15 17:19:08 1054
原创 博客建站8 - 选择hexo博客网站的主题
接下来要做的就是优化我们的网站页面和展示效果,对于hexo博客来说,第一步就是要选择一个适合我们自己风格的网站主题。用Python写过书,也玩过一点PHP,未来还会折腾更多东西,不死不休。Hexo是一个功能丰富的静态网站博客框架,本身支持多种主题,在Hexo的。适用场景: 版面简洁、结构清晰,适合个人博客、技术博客、文档类网站。适用场景: 中小企业/工作室的官网,用于品牌形象宣传。适用场景: 中小企业/工作室的官网,用于品牌形象宣传。适用场景: 个人博客网站,技术社区网站。官方网站: 暂无,可以查看这个。
2024-09-07 09:47:54 299
原创 Linux C++ 开发7 - GDB常用命令汇总(你想了解的都在这)
上一篇《》中我们讲解了GDB的调试流程和常用的调试方法。GDB的调试指令众多,我们这里针对常用的指令做一个汇总(按功能分类),以便需要时进行查阅。
2024-09-03 21:49:36 1300
原创 Linux C++ 开发6 - GDB调试入门指南
GDB的全称是,它是一个由GNU项目开发的开源调试器,用于调试C和C++程序。GDB允许开发者检查程序的执行过程,设置断点,查看变量值,以及执行其他调试任务,如分析程序崩溃的原因。GDB支持多种编程语言,包括C、C++、Objective-C、Fortran、Pascal等。通过GDB,开发者可以更有效地诊断和修复代码中的错误,提高开发效率。
2024-09-01 13:29:51 1396
原创 Linux C++ 开发5 - 一文了解CMake构建
CMake是一个跨平台的开源构建系统生成器。它能够生成各种构建系统文件,如MakefileVisual Studio 项目文件等。CMake通过读取一个或多个CMakeLists.txt文件来配置项目的构建过程。一个公司有多个部门,每个部门有多个人组成,这些人中有开发人员,有测试人员,和与项目相关的其它人员,其结构如下图片。现在要遍历这个公司的所有开发人员,遍历这个公司的所有测试人员。
2024-08-26 18:11:07 886
原创 博客建站7 - hexo博客独立服务器如何自动部署?
让钩子文件删除 /home/www/sunlogging 目录下原有的文件,然后从 /home/git/sunlogging_repo 仓库 clone 新的博客静态文件到 /home/www/sunlogging 目录下。前提条件: 已安装 node.js、hexo、git等软件,如果未安装,请先安装。输入刚设置的密码进行登录,如果登录成功,这说明git用户密码的设置成功。前提条件: 已安装git,如果未安装,请先安装。前提条件: 已安装git,如果未安装,请先安装。,就能查看刚部署的博客主页了。
2024-08-24 17:24:09 1009
原创 又有不少人要为《黑神话:悟空》买电脑了
3A游戏是指那些在开发过程中投入了大量时间、资源和资金的顶级游戏作品。"3A" 是 "Triple A" 的缩写,意味着这些游戏在行业内具有最高的制作水准和品质。通常具有精美的画面、复杂的剧情、丰富的内容。开发一款 3A 游戏通常需要数百甚至上千人的团队,包括程序员、设计师、艺术家、编剧等多个领域的专业人才。而且开发周期往往较长,可能需要数年时间。3A游戏的开发和营销预算通常非常高,动辄数千万甚至上亿美元。
2024-08-21 10:38:51 709
原创 VSCode系列 - 如何用VSCode搭建C++高效开发环境(2)
在VSCode下进行C/C++开发,C/C++插件是最重要、功能最强大、也是最复杂的一个插件。我们从C/C++: 代码智能提示、补全、跳转等功能,集成了插件的几乎所有功能。Formatting: 代码格式化器,可对代码进行自动格式化。: 通过代码(注释)生成文档,定义注释的样式,集成Doxygen等工具。: 代码分析器,对代码的错误、风格等进行检查,集成了Clang-Tidy。Debugging: Debug调试器。: 资源管理器。: 其他杂项配置。进行C/C++开发,C/C++
2024-08-20 22:50:27 972
原创 VSCode系列 - 如何用VSCode搭建C++高效开发环境(1)
VSCode是笔者用过的最好用的开发工具,没有之一。笔者14年的码龄生涯中,先后用过Eclipse、 IntelliJ IDEA、 WebStorm、 PyCharm、 Visual Studio(2010/2013/2015)、 NetBeans、 Sublime Text等,但自从用VSCode之后,就再没换过其他工具,一直用到现在有5年多的时间。
2024-08-20 22:27:00 1150
原创 Linux C++ 开发4 - 入门makefile一篇文章就够了
make是一个自动化构建工具,广泛应用于C/C++项目中,但也可以用于其他编程语言。它的主要功能是根据Makefile中的规则自动执行一系列命令,从而生成目标文件。make通过比较目标文件和依赖文件的时间戳来决定是否需要重新构建某个目标,从而避免了不必要的编译,提高了构建效率。Makefile是一个文本文件,定义了构建项目的规则和指令。通常定义了多条包含 目标(target)、依赖(dependency)和命令(command) 的规则。
2024-08-19 10:12:06 1096
原创 博客建站6 - 一文搞懂域名解析(保姆级教程和原理讲解)
除了新手引导进行快速配置外,还可以点击添加记录进行自定义配置域名解析。DNS(Domain Name System,域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。网络上计算机之间的通讯是通过IP地址来完成的,但IP地址并不便于记忆,我们需要一个方便记忆的名字来识别每一台计算机,这就是域名,而维护域名的系统就叫做域名系统域名系统其实就是名字系统。
2024-08-15 18:31:33 1208
原创 博客建站5 - Nginx的安装和配置
apache httpd和nginx都是web服务器,负责网站的托管、路由等服务。nginx的优点是占用内存少、并发能力强、支持热部署、高度模块化的设计。
2024-08-14 10:36:37 646
原创 Linux C++ 开发3 - 你写的Hello world经过哪些过程才被计算机理解和执行?
上一篇《》我们编写了一个程序,并在Linux下完成了正常的编译和执行。上一篇中我们用这个指令就轻松将我们的demo01.cpp源代码编译成了二进制程序,那你知道这个指令内部经历了哪些过程吗?
2024-08-12 15:08:51 337
原创 汇编语言1 - 什么是汇编语言?
汇编语言)是一种低级编程语言,与计算机硬件紧密相关。它使用助记符(mnemonics)来表示机器指令,这些助记符通常与特定的处理器架构(如 x86、ARM 等)相对应。汇编语言直接映射到机器语言,因此能够提供对硬件的精细控制,但同时也要求开发者对计算机架构有深入的理解。NASM适合需要跨平台支持、开源性和灵活性的项目。MASM适合需要与Windows API紧密集成、使用复杂宏功能和集成开发环境的项目。GAS适合在类Unix系统上使用,特别是与GCC编译器集成的情况。
2024-08-09 14:53:42 833
原创 Linux C++ 开发2 - 编写、编译、执行第一个程序
来说,gcc主要用于编译C代码,而g++主要用于编译C++代码,并且在链接阶段会自动处理C++标准库的链接。如果你需要编译C++代码,建议使用g++,这样可以避免手动指定链接C++标准库的麻烦。
2024-08-08 20:32:02 778
原创 一文搞懂C/C++常用编译器
C++编译器编译器全称支持的平台备注MSVCWindows由微软开发,主要用于Windows平台应用程序的开发。Visual Studio系列IDE默认集成了该编译器GCC开源编译器,支持多种平台,Linux下C++开发一般默认会使用此编译器ClangLLVM项目的一部分,提供高效的编译性能。macOS的XCode工具默认集成了此编译器Clang是一个由 LLVM 项目开发的 C、C++、Objective-C 等编程语言的编译器前端。
2024-08-08 15:02:51 1108
原创 10年工龄的90后程序员折腾博客的这些年
第一篇博客,来回修修改改写了两周,因为真的不知道怎么写,只能参考别人的文章依葫芦画瓢,关键这个飘还一直画歪了,就一直擦了重画,熬黑了好几个熊猫眼。于是2018年在撰写我的第一本书,这里记得一个印象深刻的小细节是:有一次为了寻找灵感,一个冬月的晚上,我绕着小区走了三圈,差点冻成感冒。由于各种原因,2019-2023这5年的时间,就再也没有写博客了,个人网站也停跟了。也就在这时,我被社区评为了。在停止博客写作的这5年,感觉越来越缺乏自己的思考了,一直被工作和业务交互推着走,感觉自己快成为没有思想的行尸走肉了。
2024-08-02 16:35:27 1396
原创 Linux C++ 开发1 - 搭建C++开发环境
Ubuntu 默认情况下没有提供C/C++编译环境的,你可以单独安装gcc、g++等工具,但会比较麻烦。Ubuntu提供了一个build-essential软件包,安装了该软件包,编译c/c++所需要的软件包也都会被安装。Linux下C++开发,常用的IDE,一个是VSCode(一般配合gcc/Cmake一起使用),另一个是CLion(JetBrains出品,免费版有一定功能限制)。第一次运行时,CLion会引导你完成一些初始配置,如选择主题、安装插件等。扫码二维码,关注微信公众号,阅读更多精彩内容。
2024-07-30 17:27:01 507
原创 C++ 11 nullptr 比 NULL 的优势比较
NULL:预处理变量,是一个宏,它的值是 0,定义在头文件 中,即 #define NULL 0。nullptr:C++ 11 中的关键字,是一种特殊类型的字面值,可以被转换成任意其他类型。
2024-07-27 21:08:43 466
原创 C++文件系统操作7 - 跨平台实现文件和文件夹的拷贝
本项目已开源,代码简洁,且有详细的文档和Demo。C++ 文件系统操作 拷贝文件 拷贝文件夹 跨平台。扫码二维码,关注微信公众号,阅读更多精彩内容。
2024-07-26 22:28:33 601
原创 C++文件系统操作6 - 跨平台实现查找指定文件夹下的特定文件
C++ 文件系统操作 查找指定文件夹下的特定文件 跨平台。, 本项目已开源,代码简洁,且有详细的文档和Demo。扫码二维码,关注微信公众号,阅读更多精彩内容。
2024-07-26 22:17:32 346
原创 C++文件系统操作5 - 跨平台列出指定目录下的所有文件和文件夹
C++ 文件系统操作 列出指定目录下的所有文件 列出指定目录下的所有文件夹 跨平台。, 本项目已开源,代码简洁,且有详细的文档和Demo。扫码二维码,关注微信公众号,阅读更多精彩内容。
2024-07-25 21:21:45 482
原创 C++文件系统操作4 - 跨平台实现获取文件|文件夹的大小
C++ 文件系统操作 获取文件的大小 获取文件夹的大小 跨平台。, 本项目已开源,代码简洁,且有详细的文档和Demo。扫码二维码,关注微信公众号,阅读更多精彩内容。
2024-07-24 22:42:24 282
原创 C++文件系统操作3 - 跨平台实现读取|写入纯文本文件
C++ 文件系统操作 读取纯文本文件 写入纯文本文件 跨平台。, 本项目已开源,代码简洁,且有详细的文档和Demo。扫码二维码,关注微信公众号,阅读更多精彩内容。
2024-07-24 21:56:13 286
原创 C++之迭代器
迭代器(Iterator)是按照一定的顺序对一个或多个容器中的元素从前往遍历的一种机制,比如for循环就是一种最简单的迭代器,对一个数组的遍历也是一种的迭代遍历的过程。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器有时也称为枚举器(Enumerator),其结构图如下:迭代器结构图迭代器其实就是维护一个当前的指针,这个指针可以指向当前的元素,可以返回当前所指向的元素,可以移到下一个元素的位置,通过这个指针可以遍历容器的所有元素。
2024-07-23 21:15:13 1380
原创 博客建站4 - ssh远程连接服务器
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地远程登录到其他计算机系统。它提供了对远程服务器的安全访问,并支持加密数据传输。SSH协议通过使用公钥加密技术来确保通信的安全性,防止中间人攻击和数据泄露。
2024-07-22 21:44:09 407
原创 C++如何在main函数开始之前(或结束之后)执行一段逻辑?
结合C++类的构造函数和虚构函数的特点,可以专门定义一个类来处理main函数开始之前和结束之后的逻辑(为了保证这个类只有一个全局对象,建议将这个类设计成单例模式),然后在main之前声明这个类的一个全局变量。说明:程序异常退出时(如:crash),“main函数结束后的逻辑均”不被执行,不能cover住这种场景。我们知道C/C++程序的执行逻辑是从main函数开始,到main函数结束。针对main函数结束之后的逻辑,可以使用atexit函数注册一个回调函数,在main函数执行之后被执行。
2024-07-22 21:38:00 1516
原创 博客文章多平台发布工具
做过博客分享和自媒体的同学应该都知道,在多个平台上同步发布、更新自己的原创内容,是快速传播知识、提高用户触达率的有效方式。然而,一篇文章要在N个平台上重复进行编辑、排版、图片/视频上传的苦恼,你一定经历过吧?那有没有一种高效便捷的方式:可以在一个地方编辑完成后,一键快速地发布到多个平台呢?答案是肯定的,而且有多种不同的方式,主要是借助这个工具来实现,替代我们手动的重复劳动。下面将介绍我了解的各种工具。
2024-07-12 22:28:17 1043
原创 博客建站3 - 购买域名
选择一个与你的网站主题相关的关键词作为域名的一部分,这有助于提高搜索引擎的排名。例如,京东的域名是:jd.com,小米的域名是:mi.com,百度的域名是:baidu.com。如果你是在国内的域名注册服务商注册的域名,或者你的服务器在国内,首次部署你的网站前,需要进行域名备案,否则你的网站可能无法正常访问。购买域名后,你可能需要配置域名的DNS设置,以便将域名指向你的网站服务器的IP地址。从“简洁易记”的标准看,其实不符合“简洁”的标准,但是和我的网站主题是很相关的,且“易记性”也算还可以。
2024-07-12 21:56:30 822
原创 C++文件系统操作2 - 跨平台实现文件夹的创建和删除
C++ 文件系统操作 创建文件夹 创建多级目录文件夹 删除文件夹 删除文件夹下的所有文件和子目录 跨平台。, 本项目已开源,代码简洁,且有详细的文档和Demo。本文由博客一文多发平台。
2024-07-03 22:35:23 492
原创 C++文件系统操作1 - 跨平台实现文件的创建和删除
C++ 文件系统操作 创建文件 删除文件 创建软连接 刪除软连接 跨平台。, 本项目已开源,代码简洁,且有详细的文档和Demo。本文由博客一文多发平台。
2024-07-01 21:26:53 535
文本编辑器第四版——迷你编辑器(安装文件)
2012-09-23
文本编辑器第三版——文字留痕(安装文件)
2012-08-26
数据结构演示系统(安装程序)
2012-06-03
java连接数据库
2011-09-30
[电脑拆机]谁知道这个模块是什么?
2015-08-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人