摘要: 1:db这个对象是对数据库的抽象,并不能简单的理解为数据库连接,它内部包含了连接 2:prepare statment:是一个更加高效的查询语句,减少了数据库的交互,通常使用了占位符的sql会创建prepare statement 3:使用query查询的话,必须处理返回的数据,至少要关闭掉,不然会 阅读全文
posted @ 2023-11-08 20:09 故意写bug 阅读(11) 评论(0) 推荐(0)
摘要: ##查看逃逸分析 go build -gcflags "-m -m" 阅读全文
posted @ 2022-08-09 16:17 故意写bug 阅读(160) 评论(0) 推荐(0)
摘要: #垃圾回收器标记的三个工作阶段 mark setup(stw) 因为并发标记过程中,业务goroutine可以继续运行,所以需要打开写屏障,打开写屏障需要goroutine进入安全点,进入安全点的唯一方法是让goroutine在函数调用的地方停止 mark concurrent gc gorouti 阅读全文
posted @ 2022-08-07 18:44 故意写bug 阅读(71) 评论(0) 推荐(0)
摘要: 身体基础的测量,只有了解自己的身体素质如何,才能指定一个正确的健身计划 保持周期性和超负荷的基础,同时注意如下几点 全幅度训练原则,动作行程要长, 全面训练原则 核心训练原则 针对性训练 柔韧性训练 训练时的变量 RM的测量 组数,次数的设定 高价值动作的选择(引体,下拉,卧推,深蹲,深蹲,杠铃划船 阅读全文
posted @ 2022-08-03 21:13 故意写bug 阅读(116) 评论(0) 推荐(0)
摘要: benchmark测试 go test -bench=BenchmarkGetMarginYieldStats -run=none -benchmem -memprofile memprofile.out -cpuprofile profile.out -bench:要运行的benchmark测试函 阅读全文
posted @ 2022-08-02 18:56 故意写bug 阅读(462) 评论(0) 推荐(0)
摘要: #cpu监控 //启动cpu监控,信息写入到f中 pprof.StartCPUProfile(f) //todo //停止对cpu的监控 pprof.StopCPUProfile() go tool pprof 监控生成的文件 #对内存的监控 //平均每分配1024个字节就采样一次内存(默认是512 阅读全文
posted @ 2022-03-10 14:11 故意写bug 阅读(295) 评论(0) 推荐(0)
摘要: #字符串原理 1.go的string是utf-8编码,rune相当于一个utf码点,所以string==rune[] 2.用for i,j := range str时,i是当前字符在字节数组的下标,j是对应的字符 阅读全文
posted @ 2022-03-09 18:50 故意写bug 阅读(48) 评论(0) 推荐(0)
摘要: 1.在map的基础上,支持线程安全的load,store等操作 2.内部分成了read,dirty两个容器 3.查询会在read中查询,没有查询到的话,会在dirty中查询,并且miss次数+1,miss次数等于dirty的长度时,dirty上升为read 3.如果某个key在read中,直接cas 阅读全文
posted @ 2022-03-09 15:23 故意写bug 阅读(89) 评论(0) 推荐(0)
摘要: #context 和waitgroup有点像,不过waitgroup感知的是子go routine是否完成了任务,而context感知的是子go routine是否超时了,取消了任务这些情况 1.TimeoutContext,DeadlineContext自动或者手动取消 2.CancelConte 阅读全文
posted @ 2022-03-08 17:04 故意写bug 阅读(71) 评论(0) 推荐(0)
摘要: #原子操作 因为原子操作是基于cpu指令实现的,所以需要快速完成,支持的操作合数据类型并不多,int32,int64,uint32.uint64,uintptr,add,cas,load,store,swap #atomic.value 1.只能存储一种类型的值,即使是接口也绕不过这个限制, 2.不 阅读全文
posted @ 2022-03-08 14:58 故意写bug 阅读(406) 评论(0) 推荐(0)