摘要: 最近碰到一个case,需要根据时间点查找commitid以及commit深度 ,找到一个方法,做个记录免得忘了 问题:golang无法使用time package直接parse gitlog中的date(Date: Mon Dec 3 14:50:03 2018 +0800) 原因:gitlog中的 阅读全文
posted @ 2019-02-12 18:25 水月江南 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 符号 含义-d file 为目录且存在-e file 为文件且存在-f file 为非目录普通文件且存在-s file 存在且长度不为 0-L file 为连接且存在-r file 为文件且可读-w file 为文件且可写-x file 为文件且可执行 作者:spch2008 来源:CSDN 原文: 阅读全文
posted @ 2018-11-16 13:38 水月江南 阅读(130) 评论(0) 推荐(0) 编辑
摘要: golang原生的数据结构map,由于是通过hash方式实现的,不支持并发写入,但是在golang很多并发场景中,不可避免的需要写入map,下面介绍两种解决map并发写入的实现方式: 首先先上代码: 代码很简洁,我就不多解释了。 看一下执行效率 可以看到,chan的实现方式其性能并不理想,比sync 阅读全文
posted @ 2018-09-29 11:36 水月江南 阅读(3671) 评论(1) 推荐(0) 编辑
摘要: string与[]byte的直接转换是通过底层数据copy实现的 var a = []byte("hello boy") var b = string(a) 这种操作在并发量达到十万百万级别的时候会拖慢程序的处理速度 通过gdb调试来看一下string和[]byte的数据结构 (gdb) l mai 阅读全文
posted @ 2018-09-26 16:35 水月江南 阅读(93247) 评论(1) 推荐(1) 编辑
摘要: 如果操作的数据命中同一条会出现互斥等待的情况: 1. 首先 begin 开始事务 2. 然后修改一条数据: update push_commit_info set commit_id="" where id=292; 3. 在新打开的窗口操作这条数据: 这时候数据出现等待情况: 阅读全文
posted @ 2018-08-14 17:53 水月江南 阅读(824) 评论(0) 推荐(0) 编辑
摘要: 长时间来一直以为在读多写少的场景下,读写锁性能必然优于互斥锁,然而情况恰恰相反 不废话了,先上一段测试代码 go run test_rwmutex_mutex.go rwmutex cost: 22.403487195s mutex cost: 21.636404963s go run test_r 阅读全文
posted @ 2018-08-10 19:56 水月江南 阅读(3119) 评论(0) 推荐(0) 编辑