12 2024 档案
摘要:目录GPM模型GPM模型的工作流程特殊的M0和G0P队列为空的处理策略知识点 GPM模型 GPM模型是Go语言运行时系统中用来管理和调度大量goroutine的核心机制。在这个模型里: G(Goroutine):代表协程,即Go语言中的轻量级线程。它们由Go运行时自动管理,可以非常高效地创建和销毁,
阅读全文
摘要:目录一、检查并启用核心文件生成二、指定核心文件生成路径三、使用GDB调试核心文件 一、检查并启用核心文件生成 查看当前核心文件大小限制: 使用命令 ulimit -c 来查看系统允许的核心文件大小。如果返回值为0,则表示不生成核心文件。 临时设置无限制的核心文件大小: 在当前shell会话中执行 u
阅读全文
摘要:目录 GitHub Copilot 是一个人工智能编程助手,它可以在你编写代码时提供代码补全和建议。以下是一些使用 GitHub Copilot 的基本方法: 安装: GitHub Copilot 通常作为Visual Studio Code (VS Code) 的扩展提供。你需要安装 VS Cod
阅读全文
摘要:目录1. 缺少必要的 C 开发工具或库2. 环境变量设置不正确3. 缺少 C 库或头文件4. gopls 设置问题5. 构建标签 (Build Tags)6. 编辑器支持7. 测试和验证 如果 gopls 忽略了包含 cgo 代码的文件,这可能是由于几个原因导致的。cgo 允许 Go 代码调用 C
阅读全文
摘要:目录方法一:使用包管理器安装(推荐对于大多数用户)对于基于 Debian/Ubuntu 的系统:对于基于 Red Hat/CentOS 的系统:方法二:从官方网站下载并手动安装(推荐对于需要特定版本的用户) 在 Linux 上安装 Go(Golang)可以通过以下几种方式进行。以下是两种最常用的方法
阅读全文
摘要:docker 容器迁移到其他机器 容器转为镜像,再保存为镜像文件,迁移到其他机器后导入为镜像 1、commit:将容器转镜像 docker commit {container_id} {镜像名:版本号} 2、save:保存镜像为文件 docker save -o {文件名.tar} {镜像名:版本号
阅读全文
摘要:目录安装常用操作 安装 go-torch 是一个用于分析 Go 程序性能的工具,它可以生成火焰图(Flame Graphs)来帮助分析 CPU 的使用情况。 要安装 go-torch,你需要先安装 Go 语言环境,并设置好 GOPATH 环境变量。然后使用 go get 命令来安装 go-torch
阅读全文
摘要:目录1. 代码生成2. 类型转换3. 函数调用4. 内存管理5. 编译和链接6. 运行时7. 并发和线程8. 错误处理示例代码总结 Cgo 是 Go 语言中用于调用 C 代码的工具,其底层工作原理涉及 Go 和 C 之间的交互。以下是 Cgo 的主要工作原理: 1. 代码生成 Cgo 预处理:Cgo
阅读全文
摘要:目录基本语法常见选项示例 curl 是一个非常强大的命令行工具,用于在Linux、macOS和其他支持的平台上使用各种协议进行数据传输。它最常用于从服务器下载或上传文件,但也可以用来测试API端点等。curl 支持HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELN
阅读全文
摘要:目录测试代码使用方法CPU利用率图形化常用操作 测试代码 package main import ( "bytes" "log" "math/rand" "net/http" _ "net/http/pprof" "time" ) // 生成一个随机字符串 func genSomeBytes() *
阅读全文
摘要:目录 工具篇-Markdown 语法之typora设置中文字体篇
阅读全文
摘要:目录Go Test 简介单元测试基准测试示例测试测试覆盖率生成HTML覆盖率报告其他有用的选项 Go语言自带了一个强大的测试框架,它通过go test命令来运行测试。这个工具可以执行单元测试、性能测试(基准测试)、示例测试,并且支持测试覆盖率的统计和报告生成。 Go Test 简介 单元测试 单元测
阅读全文
摘要:目录 在linux中,每一个进程都被抽象为task_struct结构体,称为进程描述符,存储着进程各方面的信息;例如打开的文件,信号以及内存等等;然后task_struct的一个属性mm_struct管理着进程的所有虚拟内存,称为内存描述符。在mm_struct结构体中,存储着进程各个内存段的开始以
阅读全文
摘要:目录eface (empty face)iface (interface face)总结 在Go语言的内部实现中,接口(interface)有两种不同的底层表示形式:eface 和 iface。这两种结构用于支持空接口(interface{})和具体类型的接口。了解它们的区别有助于更深入地理解Go语
阅读全文
摘要:目录函数方法示例对比函数示例方法示例总结值接收者使用场景特点指针接收者使用场景特点总结值接收者使用方法示例代码指针接收者使用方法示例代码总结 在Go语言中,方法和函数是两个不同的概念,尽管它们看起来相似。主要的区别在于它们的定义方式以及与类型的关系。让我们用简单的方式来解释这两者的区别: 函数 定义
阅读全文
摘要:目录通俗的解释详细介绍值接收者 vs. 指针接收者 通俗的解释 想象一下你在一个动物园工作,你的任务是照顾所有会“嘎嘎”叫的动物。在现实生活中,你会怎么判断一个动物会不会“嘎嘎”叫呢?很简单,你只需要听它叫一次就知道了。如果你听到“嘎嘎”,那不管它是鸭子、鹅还是其他什么动物,对于你的任务来说,它就是
阅读全文
摘要:目录文件系统布局 文件系统布局 文件系统存放在磁盘上。多数磁盘划分为一个或多个分区,每个分区中有一个独立的文件系统。磁盘的0号扇区称为主引导记录(Master Boot Record,MBR),用来引导计算机。在MBR的结尾是分区表。该表给出了每个分区的起始和结束地址。表中的一个分区被标记为活动分区
阅读全文
摘要:目录 在Linux系统中,文件操作是日常任务的重要组成部分。下面是一些常用的命令行工具,用于创建、查看、编辑和管理文件。 touch - 创建空文件或更新文件的时间戳 touch 文件名 cp - 复制文件或目录 cp [选项] 源文件 目标文件 less/more - 分页查看文件内容 less
阅读全文
摘要:目录索引节点 (inode)磁盘块 (Block)关系1. 索引节点指向磁盘块2. 处理大文件3. 文件碎片处理4. 文件删除与回收总结 在操作系统中,索引节点号(inode number)和磁盘块号(block number)是文件系统管理文件数据存储位置的重要组成部分。它们之间的关系主要体现在如
阅读全文
摘要:目录设备控制器设备驱动程序关系总结 在操作系统中,设备驱动程序(Device Driver)和设备控制器(Device Controller)之间的关系是紧密且互补的。它们共同作用以确保计算机硬件能够按照操作系统的指令正确地执行任务。下面是二者之间关系的详细说明: 设备控制器 设备控制器是硬件组件,
阅读全文
摘要:目录主引导记录 (MBR)GUID 分区表 (GPT)引导过程安全性Linux系统启动流程 操作系统中的引导块,也称为引导扇区(Boot Sector)或主引导记录(Master Boot Record, MBR),是硬盘或其他存储设备上的一个特殊区域。它通常位于磁盘的第一个扇区(512字节),在计
阅读全文