- 博客(506)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 一个简短的自我介绍
挺幸运,能够以这种方式和不经意间看到此刻文章的你打个招呼~如你所见,这里是一个程序开发人员在探索他所碰到的未知过程中的记录。巧合地,现在你在见证着我的成长,也不巧的,这里你看到了很多初学者所犯的几近乎愚蠢至极的错误,这些也都会成为我们相识的见证。在这里记录的有:Python,Java,Golang,C++等编程语言的学习笔记~计算机体系结构,计算机组成原理,编译原理,操作系统等计算机系统的知识基础。.........
2022-07-06 20:47:06
2997
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 青年节,一份小总记【2022-5-4】
提到改变,好像自己又陷入了无限的内耗和颓废以及迷茫中,对于求学的迷茫,对于以后的迷茫,糟糕的想法占据着大脑,对于当下的事情置之不理,这确实是一件令我头疼的事情。从中学时代到现在立的Flag没有100个也有50个了,有的实现了,有的没实现,有些好坏参半的感觉。对于实现的,大多因为欣喜一时,或疏忽或盲目的定下下一个目标,在经过生活的一阵子蓄力后,被猛的一下碰撞在地上,才发现在自己在原地磕磕碰碰。对于没有实现的,只是在当时感到失意,也随着时间流逝,早就忘记了羞耻,实际上内心想到后还是会禁不住一颤,心里
2022-05-04 15:56:50
376
1
原创 【Linux 内核构建】如何查看 Linux 系统中可以选择的内核有哪一些?如何切换 Linux kernel 版本?
在折腾内核版本时,遇到的问题,遂将各方面的答案整理在一起。
2024-09-08 00:26:35
43
原创 【Linux 运维知识】Linux 编译后的内核镜像大小
Linux 内核镜像的大小取决于多个因素,包括内核的版本、启用的功能、模块的数量以及特定的编译配置。
2024-09-07 13:57:49
239
原创 【操作系统 OS】什么是Linux CFS?完全公平调度器是什么?
时钟中断驱动:CFS 的调度检查主要由时钟中断触发,定期执行。红黑树的角色:红黑树帮助 CFS 快速找到最需要 CPU 时间的进程。vruntime:是调度决策的核心指标,反映进程的 CPU 使用时间。公平性:通过不断地选择vruntime最小的进程,CFS 尽可能地实现 CPU 时间分配的公平性。CFS 通过这种机制平衡了系统中所有进程的 CPU 使用,使得所有进程都能按照其优先级和需要公平地获得运行机会。
2024-07-30 22:58:58
797
原创 【性能工程 - eBPF 技术】小白也能学会的 eBPF 技术(二)—— 什么是 Ring Buffer?【1】
定义:Ring Buffer是一种固定大小、头尾相连的缓冲区,它允许数据以循环的方式在缓冲区中存储和读取。原理:在Ring Buffer中,数据的写入和读取操作是通过移动指针(如头指针和尾指针)来实现的。当数据被写入时,尾指针向前移动;当数据被读取时,头指针向前移动。当尾指针追上头指针时,表示缓冲区已满,此时新的数据会覆盖最旧的数据。也就是说,ring buffer 和我们所用的双向链表形态类似,支持存储和读写。不一样的是使用场景和名字。(当然,程序员可能最喜欢的操作之一,可能就是命名!
2024-07-11 00:49:50
697
原创 【性能工程 - eBPF 技术】小白也能学会的 eBPF 技术——初步了解 eBPF 技术(一)
eBPF技术以其高度的灵活性、安全性以及低开销的特点,正在成为现代云原生、容器化环境、以及需要高性能监控和安全控制场景下的关键技术。随着持续的发展和社区的支持,eBPF的应用前景非常广阔。
2024-07-10 21:38:01
712
原创 【Linux 基础】df -h 的输出信息解读
tmpfs (/sys/fs/cgroup):这是用于 cgroup(控制组)管理的 tmpfs。详细的来讲, /sys/fs/cgroup 是 cgroup 文件系统的挂载点。例如,可以创建新的 cgroup、配置资源限制(如内存限制、CPU 限制),以及查看当前 cgroup 的资源使用情况。目录用于存储系统和应用程序的锁文件。tmpfs(/run/user/1000):这是为用户 1000(通常是当前登录用户)分配的 tmpf。tmpfs (/run/lock):是一个用于锁文件的 tmpfs。
2024-07-08 23:24:02
884
原创 【论文速读 | USENIX Security‘2022】Debloating Address Sanitizer
在程序的内存访问点(如加载和存储指令)插入额外的检查代码,这些代码会在运行时检查影子内存,以确定对应的内存访问是否有效。:对 ASan 的运行时活动、状态进行了详细的分类和测量,识别出 sanitizer 检查是导致高开销的主要原因。:如果在影子内存中发现异常(例如,访问了未初始化或已释放的内存),ASan 将报告错误并可能终止程序执行。ASan 是一种广泛使用的内存错误检测工具,但因其开销较大,限制了其在更多场景下的应用。:它集成了多种优化措施,旨在减少 sanitizer 检查,从而降低开销。
2024-06-08 12:27:41
761
原创 【论文速读 | ASPLOS‘24】Merlin: Multi-tier Optimization of eBPF Code for Performance and Compactness
论文主要解决的问题是如何对 eBPF(扩展的 Berkeley Packet Filter)代码进行多级优化,以提高其在 Linux 内核中的性能和紧凑性。eBPF 是一种在内核中运行的虚拟机,它允许用户以安全的方式执行自定义程序,用于观察、分析和修改内核行为。然而,由于 eBPF 程序在执行前需要通过内核的严格验证,并且受限于指令数量和程序长度,这导致在不牺牲安全性的前提下进行性能优化成为一个挑战。
2024-06-07 15:35:27
274
原创 【版本标记 | Github】Github 中常见的版本标记(Tags)有哪一些?分别在什么情况下使用?
无论是自己自由开发项目还是公司协同合作,随着软件的迭代升级,都需要一个比较规范(好区分)的标记来区分不同的软件版本。通常,我们使用不同的数字来表示不同的版本,例如大版本号加上小版本号等,不同的开发者会根据特殊的场景,对每个位数表述的含义进行定义。但往往还会有一些会放在这些数字前后,本文简要说明其作用和使用场景。
2024-05-26 20:25:34
326
原创 【数学】算术平均、几何平均、调和平均的区别与使用
算术平均适用于一般情况,特别是在数据分布均匀且没有极端值时。几何平均适用于计算比例变化和乘法关系的数据,例如 SPEC CPU 中多个 Benchmarks 的结果聚合成一个值,这里每一个数值本身是比例的关系。调和平均适用于处理速率和比率型数据,如平均速度和每单位成本。
2024-05-22 20:51:55
1122
原创 【开发 | 环境配置】解决 VSCode 编写 eBPF 程序找不到头文件
在使用 vscode 编写 eBPF 程序时,如果不做一些头文件定位的操作,默认情况下头文件总是带有“红色下划线”,并且大部分的变量不会有提示与补全。在编写代码文件较小时(或者功能需求小时)并不会带来不方便。但在长时间编写以及多个程序文件都在使用时,无法补全和提示也影响着编程。
2024-05-21 19:09:33
520
原创 【论文 | Latex】ACM Latex 模版中 \documentclass[acmsmall,nonacm]{acmart} 中参数有哪一些?分别什么作用?
要使用 ACM 提供的模版格式,但不想直接将 ACM 中的版权内容显示在脚注部分。例如:某个任务或者提交要求说中参考 ACM Template。通过检索,找到了如下一系列的选项和用法:文档格式:版权信息控制:审稿和摘要选项:其他功能选项:例如,我现在需要一个双盲审稿的提交稿件,可以会使用如下命令:
2024-05-04 20:37:41
409
原创 CSDN 2023 年度总结
实际上,最近两年很少从 CSDN 上写博客,也不是完全丢失了写博客的习惯,只是学的东西多起来后,习惯性的在个人笔记中做了记录,一是没时间去整理,二是周末想休息会,因此每次都会有整理的冲动,又被懒惰的自己搁置掉。刚翻看了一整年的记录,写整整9篇文章,与之前形成强烈对比,这是不是一个坏事呢,也不好说,毕竟写博客的目的是为了让自己能力得到提升,如果找到了更好的方法,从而放弃不适合自己方法,也不是过错。年度总结,好像没有内容,也没有什么必要总结。忙忙碌碌的一年,又是空空荡荡的一年。新的一年,再接再厉。
2024-02-02 15:45:35
400
原创 【Python】DataFrame 使用 concat 横向拼接出现两行问题
在使用 DataFrame 中 concat 横向拼接两个只有一行的 DataFrame 时,最终的结果有两行。如下图:原始的 df 分别为:指定横向合并后是:这里可以看到是横向拼接了,但是并没有真正意义的横向拼接,而是把多出的字段自动填充了 NaN,保留了原来的索引。
2024-01-08 15:16:21
545
原创 【React | 前端】在React的前端页面中,判断某个变量值是否被定义?根据是否定义显示不同的内容?
在React的前端页面中,判断某个变量值是否被定义?根据是否定义显示不同的内容?
2023-08-11 14:41:02
1374
原创 【操作系统基础】Linux 中 /var/log/ 文件夹下通常有哪一些文件?分别的作用是什么?
总之,Linux系统中的/var/log/文件夹下包含了大量的日志文件,这些文件记录了系统的各种活动和事件,对于系统管理员来说非常重要。除了上述提到的常见日志文件之外,/var/log/ 文件夹下还可能包含其他的日志文件,具体取决于系统的配置和使用情况。在Linux系统中,/var/log/ 文件夹通常包含了系统日志文件,这些文件记录了系统的各种活动和事件,以便管理员进行故障排除和监控。syslog:记录系统的各种事件和消息,包括系统服务的启动和停止、应用程序的错误信息等。
2023-07-31 19:44:15
1806
2
原创 【Bug修复】有效解决:Failed to load module “canberra-gtk-module“
【代码】【Bug修复】有效解决:Failed to load module "canberra-gtk-module"
2023-07-17 15:42:03
965
原创 【性能优化工具】带你了解 Linux perf
Linuxperf(性能剖析器)是一个功能强大的性能分析工具,用于帮助开发人员诊断、调优和监控Linux系统及应用程序的性能问题。它实现了基于硬件性能计数器(hardwareperformancecounters),追踪点和软件测量等多种数据收集手段,以便分析系统中各种现象。perf工具集成在Linux内核中,主要通过perf_event子系统实现。
2023-06-22 15:56:50
795
原创 【Linux 知识】什么是文件句柄 File Handle?
文件描述符(File Descriptor):文件描述符是文件句柄的一部分,它是一个非负整数,用于标识打开的文件。在编写应用程序时,需要注意文件句柄的使用,避免打开过多的文件句柄,从而导致系统的文件描述符资源紧张。文件句柄用于标识打开的文件,每个打开的文件都有一个唯一的文件句柄。当打开一个文件时,操作系统会为该文件分配一个文件句柄,并将其返回给应用程序。文件位置指针(File Position Pointer):文件位置指针用于标识文件中的当前位置,应用程序可以使用它来读取或写入文件。
2023-04-04 10:18:56
1398
1
原创 【Golang报错】100% 解决 json: cannot unmarshal array into Go value of type model.xxx 问题
在 go 项目中,查询数据时,获取不到数据。请求失败。根据 go 项目的日志,获得如下报错信息。
2023-03-06 22:09:35
1582
原创 100% 解决 git status 中文乱码问题
在使用 git status 查看 repo 里面更新的中文文件名的文件时,出现其他编码的显示,影响添加 正确的 commit 信息。
2022-12-22 16:32:22
250
原创 【Plt 绘图保存错误】AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘
使用 plt.savefig() 时报错:AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘Matplotlib 的版本过高,需要降低:
2022-11-02 16:36:34
475
原创 【论文阅读】SyncPerf: Categorizing, Detecting, and Diagnosing Synchronization Performance Bugs
本次是初步写论文记录,以翻译为主,后续会更改为只讲述核心思想。欢迎访问 Github :https://github.com/MercuryLc/paper_reading本论文讲解了如何检测、诊断锁的争用带来的性能问题。尽管具有明显的重要性,但与同步原语相关的性能问题仍然缺乏足够的关注。没有文献广泛调查此类性能问题的类别、根本原因和解决策略。 现有的工作主要集中在一种类型的问题上,而忽略了其他重要的类别。
2022-10-22 20:30:20
696
1
原创 【论文阅读知识】阅读论文时发现 retract 是什么意思?
在论文发表之前,作者主动发起的撤稿,称为 withdraw(名词:withdrawal)。稿件发布之后,作者或者期刊发起的撤稿都被称作 retract(名词:retraction)
2022-07-12 14:43:33
2037
原创 Linux 为什么运行 swapper
linux 系统中,当 cpu 上没有要执行的任务时,往往会运行 swapper 进程,即 idle 状态,这时我们可以说 cpu 处于空闲状态。
2022-06-19 11:38:22
1198
原创 Flask使用migrate迁移后,无法检测到models,无法生成表
问题描述在 Flask 项目中,使用 flask_migrate 管理数据库中,依次使用如下命令,对数据库和表进行生成和迁移:python app.py db initpython app.py db migratepython app.py db upgrade注意:这里 app.py 即 manage.py ,运行 Flask 项目的入口。但是无法检测到 models.py 中的数据库表,一直不成功,也不报错。解决方式尝试多种解决方式,譬如调用 db.create_a.
2022-05-03 00:20:22
2154
1
原创 SSH 连接时报错:Host key verification failed.
完整报错信息:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone coul
2022-04-02 15:09:48
1795
原创 Python生成函数注释
Python 编译软件:PyCharm方法:在函数下方,连续输入3个 " (英文双引号)后,输入 Enter(回车键),即可自动生成。step1:step2:注意这里:先把函数参数写好后,会自动一起生成,后期再写入,需要手动添加到注释中。...
2022-02-20 22:04:22
2809
转载 python如何判断一个目录下是否存在某个文件?
转载https://www.cnblogs.com/daiguoxi/p/13806385.htmlpython如何判断一个目录下是否存在某个文件?1.使用os模块用os模块中baios.path.exists()方法检测是否存在test_file.txt文件 1 2 3 4 5 importos os.path.exists(test_file.txt) #True os.path..
2022-02-17 14:33:52
3493
原创 位、字节、字的区别
位 Bit位是计算机的最基本单位。即一串二进制0和1,每一个就是一位。字节 Byte1 Byte = 8 Bit字节单位 > 位单位字 word不同位数的计算机对字的大小定义不同。字(Word)代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位。对于32位计算机与64位计算机,字的大小往往不同。32位计算机:1字=32位=4字节,64位计算机:1字=64位=8字节Reference位、字节、字_百度百科...
2021-10-14 22:35:04
1766
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人