- 博客(300)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Go 收藏积累 慢慢登记防止忘记
个人推荐:http://godeye.org/index.php?a=course&id=6http://mikespook.com/learning-go/http://coolshell.cn/articles/8460.htmlhttp://coolshell.cn/articles/8489.htmlhttps://code.google.com/p/go-zh/http://b...
2016-04-21 13:27:00
1030
原创 vscode Comment Translate插件反应慢
由于translate.google.com在大陆使用的人少较少,所以谷歌那边关闭了。Comment Translate插件就是调用这个翻译的接口。有个弊端万一ip更变就需要重新改一下了。需要修改host来提一下速。首先获取一下对应域名的ip。加入下面两行,保存即可。
2024-07-19 15:21:01
209
原创 C++ CMake 预定义宏与变量
项目根目录(项目定义所在的 CMakeLists.txt 所在的目录)当前处理的 CMakeLists.txt 或包含文件的完整路径。当前处理的 CMakeLists.txt 或包含文件的目录。当前处理的 CMakeLists.txt 输出的构建目录。当前处理的 CMakeLists.txt 所在的路径。顶层 CMakeLists.txt 所在的目录。生成共享库时的链接器标志。生成静态库时的链接器标志。构建输出目录的顶层路径。C++ 编译器的路径。查找头文件的默认路径。查找库文件的默认路径。
2024-06-27 10:14:59
460
原创 vscode C++ sence cache path
需要调整一下C++的cache 目录 默认会放到C盘的appdata里面去 C磁盘空间小调整配置切换到别的盘。
2024-06-24 11:47:42
139
原创 C++ vcpkg库管理工具win11安装
由于我使用的是visual studio 2022编辑器 需要运行下面的命令让它帮忙集成一下这个库。没有报错就运行一下vcpkg.exe试试,出现如下显示表示安装成功。这样就可以用了,如果使用的是cmake 需要复制上面那个引号里的内容。运行.\bootstrap-vcpkg.bat 让它自己安装即可。后续安装库执行命令如下,最好给下载代码的目录加个环境变量。往下拉到 Table of Contents。安装下面说的步骤进行一步一步的操作。首先下载一下对应的仓库代码。进去对应的目录进入cmd。
2024-06-03 14:27:06
238
原创 golang Pool实战与底层实现
我们从上面的源码分析了解Pool的数据结构、Get、Put这些基本操作原理,在项目中我们可以使用比特位来减少内存的占用,从源码分析我们得知Go官方设计不允许进行Pool复制(君子协议), 还学到了一个延迟处理下标的小技巧。
2023-12-01 13:48:59
823
原创 golang WaitGroup的使用与底层实现
源码分析了解WaitGroup的数据结构、Add、Done和Wait这些基本操作原理,在项目中我们可以使用比特位来减少内存的占用,从源码分析我们得知Go官方设计不允许进行WaitGroup复制(君子协议)与并发调度同一个WaitGroup操作。
2023-11-30 10:46:07
825
原创 golang channel执行原理与代码分析
从源码的角度分析channel的数据结构、发送数据、接收数据和关闭这些基本操作, 业务中对性能要求比较高建议不要使用chan。
2023-11-29 10:19:58
3192
原创 golang panic关键词执行原理与代码分析
从上面的源码我们可以了解到panic的大致逻辑,当使用panic关键词时,将painc加入到G的_panic链表中去. 调度时 defer func() {recover()}(),会改写_painc中的recovered字段,可恢复的panic必须要recover的配合。而且这个recover必须位于同一goroutine的直接调用链上,否则无法对 panic 进行恢复,未写完有些细节点还是没读懂,后续查阅资料补充。
2023-11-25 09:02:43
626
原创 linux如何获取CPU使用率
编程性 : 一个程序可以通过文件与其他程序通信,使得程序之间的交互、测试、集成等行为变得更容易,并且可以针对不同的应用场景,使用适用的编程语言来编写代码,提升灵活性和开发效率。Linux 将资源抽象为文件表示,那么和 CPU 相关的数据是否也会被抽象为文件,进而保存在某个文件中呢?统一接口: 使用相同的 API 可以对所有类型的文件进行操作,例如读取、写入、移动、删除、修改权限等。简化管理: 使用相同的工具和方式来管理文件和设备的操作,例如备份、复制、移动、删除、链接等。
2023-11-25 09:00:22
682
原创 golang defer关键词执行原理与代码分析
从上面的源码我们可以了解到defer的大致逻辑,当使用defer关键词时,会将当前要延迟的函数加入到G的延迟链表中去,当我们的函数执行完成后会触发deferreturn调度将G中的延迟链表循环执行一遍,来达到延迟执行的目的。
2023-11-25 08:57:51
549
原创 rust 中protobuf生成与使用
由于我们的项目中没有pb的这个目录 需要手动创建一下,我们的整体结构如下。修改Cargo.toml文件 我们需要加一下 我们需要的依赖包。查看在我们刚刚创建的pb文件夹下是否有一个hello.rs文件。进入到这个文件夹中 创建我们的proto文件。新建一个hello.proto文件内容如下。然后运行cargo build 结果如下。在pb目录创建mod.rs文件 内容如下。初始化的项目结构是这个样子的。首先创建一个项目proto。执行cargo run。
2023-05-26 20:45:00
2324
1
原创 rust 数据类型集合
指明目前Rust并没有确定扩容的策略,以后可能会改变),然后将原vec中的元素拷贝到新内存位置处,同时更新vec的胖指针中的元数据。当向vec插入新元素时,如果没有空闲容量,则会重新申请一块内存,大小为原来vec内存大小的两倍(Rust有两种字符串类型:str和String。str和String的联系和区别。vec使用枚举存储多个类型。
2023-05-25 21:00:00
238
原创 rust cargo expand报错
cargo expand 命令需要 Rust 的 Nightly 版本才能正常工作,而默认的 Rust 版本是 Stable。在 Nightly 版本中,rustc 工具支持 -Z 选项,而该选项在 Stable 版本中是禁用的,因此需要切换到 Nightly 版本,或在 Stable 版本中使用类似 cargo expand 的其他工具。
2023-05-23 21:00:00
348
原创 rust 操作符
操作符 作用 实例 + 加法、字符串拼接 1+2, "Hello " + “world!” - 减法、负数 4-1, -3 * 乘法 3*4 / 除法 10/2 % 取模运算 12%5 == 判断相等 3==5 != 判断不相等 3!=5 < 判断小于 4<5 <= 判断小于等于 4<=4 > 判断大于 5&
2023-05-11 20:30:00
130
原创 rust println!格式化输出
格式 格式说明 样例代码 输出效果 {} 将任何实现了std::fmt::Display trait的类型格式化为字符串输出 println!("Hello, {}!", "world"); Hello, world! {:?} 以调试模式打印任何实现了std::fmt::Debug trait的类型 println!("Debug: {:?}", [1, 2, 3]); Debug: [1, 2, 3] {:#?} 在调试模式下将
2023-05-09 21:30:00
946
原创 rust 中的类型与取值范围
类型 取值范围 bool true 或 false char 单个 Unicode 字符 i8 -128 到 127 i16 -32768 到 32767 i32 -2147483648 到 2147483647 i64 -9223372036854775808 到 9223372036854775807 i128 -170141183460469231731687303715884105728 到 1701411834604692
2023-05-09 21:00:00
753
原创 rust 内置关键词与作用
关键词 作用 as 类型转换 break 跳出循环 const 定义常量 crate 声明当前模块 enum 定义枚举类型 extern 定义外部模块,用于与其他语言的代码交互 fn 定义函数 for 迭代循环 impl 给一个类型实现方法或 Trait if 条件语句 in 确定循环迭代的范围 let 声明变量 loop 无限循环 match 模式匹配 mo
2023-05-09 20:45:00
303
原创 rust vscode编辑器常用插件与配置
插件的完整手册地址:https://rust-analyzer.github.io/manual.html。会实时编译和分析你的 Rust 代码,提示代码中的错误,并对类型进行标注。基于 AI 的自动补全,可以帮助你更快地撰写代码。Rust 使用 toml 做项目的配置管理。帮助你分析当前项目的依赖是否是最新的版本。插件: rust test lens。插件:rust-analyzer。插件: rust syntax。插件: better toml。搜索open user set。插件: crates。
2023-05-05 20:15:00
1823
原创 GeoHash 的编码方法
在进行第一次二分区时,经度范围[-180,180]会被分成两个子区间:[-180,0) 和[0,180](左、右分区)。第一次二分区:把经度区间[-180,180]分成了左分区[-180,0] 和右分区[0,180],此时,经度值 116.37 是属于右分区[0,180],用 1 表示第一次二分区后的编码值。第三次二分区:对[90,180]进行二分区,分成[90,135]和[135, 180],经度值 116.37 落在了分区后的左分区[90, 135] 中,所以,第三次分区后的编码值就是 0。
2023-01-13 11:17:22
705
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人