Loading

摘要: osrm-extract osrm 第一步,将 osm.pbf 文件取出来需要用的数据 docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-extract -p /opt/car.lua /data/thail 阅读全文
posted @ 2024-04-08 09:43 _小孟同学 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 介绍 shell 是 linux 下的脚本,可以很方便的执行一些操作,而不用编写程序编译 解释器 注:可以省略 脚本不指定的话就会采用系统默认的解释器去执行,但可以在脚本中进行指定,格式 #!/bin/bash 其必须在基本文件的第一行,并且以#!开头,后面接解释器路径,如果指定没有解释器,则会报错 阅读全文
posted @ 2023-12-16 17:18 _小孟同学 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 近期遇到一个问题 golang 在多协程情况下,对一个 error 进行赋值,本意是无论多少个协程,只要有个一个 error,那么就认为是 error 错误. 但是在实际写的过程中遇到问题就是需不需要加锁,不加锁会影响什么 代码如下(伪代码) func main(){ var err error v 阅读全文
posted @ 2023-12-16 11:46 _小孟同学 阅读(27) 评论(0) 推荐(0) 编辑
摘要: golang select是多 channel 并行的利器 不要拿 switch 和 select 比,根本不是一个东西好嘛,差不少,只是名字稍微有点像 前置操作 golang 对 select 做了一些优化 select 结构体为空 当 select 里面为空的时候会直接 panic 只有一个 c 阅读全文
posted @ 2023-11-22 21:26 _小孟同学 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 在 golang 中,有原子包,能够实现原子操作,在我分析和猜想下,感觉解开了谜团 具体用法不说了,网上一大堆什么 cas,add,load,store 等,主要是底层实现 arm 架构 在 amd 架构下,通过汇编指令加锁来实现 代码在src/runtime/internal/atomic/ato 阅读全文
posted @ 2023-11-22 21:25 _小孟同学 阅读(6) 评论(0) 推荐(0) 编辑
摘要: golang的内存分配思想从 tcmalloc 而来,思路是把对象分配成小对象减少锁的力度或无锁增加效率 定义 golang 内部的页(Page)大小为 8B 空间大小 golang 内部把要申请或使用的空间大小分为了三大类:微对象 (<16B),小对象(16B~32KB),大对象(>32KB), 阅读全文
posted @ 2023-11-22 21:23 _小孟同学 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收器,最高占用 cpu25% 历史 Go1.1 STW Go1.3 Mark STW, Sweep 并行 Go1.5 三色标记法 Go1.8 混合写屏障 STW stw 就是 stop the wrod,意思就是程序停下来,然后标记所有的对象,然后再将所有不用的对象清除,没啥技术难点,但是性能 阅读全文
posted @ 2023-11-19 21:43 _小孟同学 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 定义 G:Goroutine的缩写,一个G代表了对一段需要被执行的Go语言代码的封装 M:Machine的缩写,一个M代表了一个内核线程 P:Processor的缩写,一个P代表了M所需的上下文环境 定义都在源码 runtime/runtime2.go M M 的定义在runtime/runtime 阅读全文
posted @ 2023-11-17 14:56 _小孟同学 阅读(47) 评论(0) 推荐(0) 编辑
摘要: ”不要以共享内存的方式来通信,相反,要通过通信来共享内存“ golang 的一个思想,不整文的,整点武的,具体来看channel 怎么做的 有一个很关键的 golang MPG 模型再单独分析,这篇先只分析 channel 定义 // runtim/chan.go type hchan struct 阅读全文
posted @ 2023-11-16 20:22 _小孟同学 阅读(26) 评论(0) 推荐(0) 编辑
摘要: golang 的 map 使用的是 hash map 基本结构 下面截取自源码,已翻译 // runtime/map.go:117 // go map 定义,hashmap 缩写 type hmap struct { count int // map 里文件数 flags uint8 // map 阅读全文
posted @ 2023-11-16 14:24 _小孟同学 阅读(41) 评论(0) 推荐(0) 编辑
摘要: slice 是 golang 的切片,动态数组 底层结构 // runtime/slice.go type slice struct { array unsafe.Pointer // 底层数组 len int cap int } golang 的 slice 底层是一个数组,也就是可以通过 &s[ 阅读全文
posted @ 2023-11-15 14:03 _小孟同学 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 在搜索内容后面加上: ``` -site:*.csdn.net ``` 阅读全文
posted @ 2023-09-04 17:38 _小孟同学 阅读(52) 评论(0) 推荐(0) 编辑
摘要: ``` sudo killall -HUP mDNSResponder ``` 阅读全文
posted @ 2023-09-04 15:35 _小孟同学 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 今天登录堡垒机发现 ssh 登录失败,报错如下所示 ``` @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@ 阅读全文
posted @ 2023-09-04 10:26 _小孟同学 阅读(14) 评论(0) 推荐(0) 编辑
摘要: vscode开启golangdebug 第一 要选择对golang版本,然后安装 我的是mac m1就选择如图 第二 安装对dlv go get -u github.com/go-delve/delve/cmd/dlv 否则可能报错 could not launch process: can not 阅读全文
posted @ 2022-09-09 14:27 _小孟同学 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 在使用vscode进行debug golang 时,出现test结果缓存的情况 导致若干次test结果一致问题 设置go test不用缓存 官方说明 https://pkg.go.dev/cmd/go#hdr-Test_packages 设置: 找到设置 找到test设置 添加"-count=1" 阅读全文
posted @ 2022-09-09 14:26 _小孟同学 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1. 读取整个文件 直接读取 os.ReadFile() ioutil.ReadFile() 在go 1.16 之后ioutil.ReadFile 就等价于 os.ReadFile,所以推荐用os.ReadFile package main import ( "fmt" "os" ) func ma 阅读全文
posted @ 2022-04-26 10:06 _小孟同学 阅读(1775) 评论(0) 推荐(0) 编辑
摘要: 简介 protobuf是google开源的数据传输格式,作用类似于json/xml github地址https://github.com/protocolbuffers/protobuf 效率 由于protobuf采用二进制编码,不同于json/xml,其编码后的格式不便于人为观察,用于对传输效率/ 阅读全文
posted @ 2022-04-25 21:54 _小孟同学 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 在linux设计中一切皆文件,不管是外设还是存储,都是以文件形式进行存储.平时的使用mv命令,几乎所有文件都是瞬间转移到了新目录下(在windows下转移文件就会慢一些),今天了解一下linux中的文件系统 基本介绍 linu中用ls命令,可以查看当前目录所有的文件 [work@machine]$ 阅读全文
posted @ 2022-04-06 15:00 _小孟同学 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 在axios/index.js添加下面配置 axios.interceptors.request.use((config) => { if(config.method 'post') { config.headers={'Content-Type': 'text/plain'} } return c 阅读全文
posted @ 2022-02-25 14:51 _小孟同学 阅读(309) 评论(0) 推荐(0) 编辑