go的内存管理(一)
摘要:进程里面的堆和栈 我们知道进程之间内存是隔离的不共享。所以一般说到内存就是指的一个进程用到的内存。 而一个进程的内存一般可以分为 5个区:栈区, 堆区, 静态区(全局区), 文字常量区,代码区。而我们主要理解栈区和堆区,其他3个区里面的内容都是静态的。 栈区: 函数里面涉及到几乎大部分内容都在栈区,
阅读全文
golang基准测试详解
摘要:为什么需要基准测试? 如果你的代码中有性能问题,或者你怀疑某段代码有性能问题(当然最好得明确排除I/O性能问题),可以用基准测试生成CPU分析报告。 基准测试前的准备 生成以_test后缀的go文件(例:xxx_test.go)后,编写基准测试用例,以Benchmark开头的。以测试冒泡排序为例,代
阅读全文
使goroutine同步的方法总结
摘要:前言: 在前面并发性能对比的文章中,我们可以看到Golang处理大并发的能力十分强劲,而且开发也特别方便,只需要用go关键字即可开启一个新的协程。 但当多个goroutine同时进行处理的时候,就会遇到同时抢占一个资源的情况(并发都会遇到的问题),所以我们希望某个goroutine等待另一个goro
阅读全文