go test Build 缓存

Posted by 夏泽民

go 在 1.10 版本中引入了 go tool 的缓存,此功能会缓存 go test执行的结果。 每当执行 go test 时,如果功能代码和测试代码没有变动,则在下一次执行时,会直接读取缓存中的测试结果。 而且 go test -v . 和 go test .是分开缓存的。 我们是接受缓存的,只需要测试功能通过就行了。如果想跳过缓存,有什么办法呢? 大部分人都会想到会有参数控制的,那么这个参数就是 -count=1,把上面的测试命令加上参数, go test -count=1 -v .,执行一下试试,果然可以跳过缓存。



Go 语言运行时环境变量

Posted by 夏泽民

Go Runtime除了提供:GC, goroutine调度, 定时器,network polling等服务外, 还提供其它一些工具设施,用于开启额外的调试输出,



reflect性能

Posted by 夏泽民

Go reflect包提供了运行时获取对象的类型和值的能力,它可以帮助我们实现代码的抽象和简化,实现动态的数据获取和方法调用, 提高开发效率和可读性, 也弥补Go在缺乏泛型的情况下对数据的统一处理能力。



reflect

Posted by 夏泽民

对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义 每种语言的反射模型都不同,并且有些语言根本不支持反射。Golang语言实现了反射,反射机制就是在运行时动态的调用对象的方法和属性,官方自带的reflect包就是反射相关的,只要包含这个包就可以使用。



go 语言内存布局

Posted by 夏泽民

1.Go对象有没有Object Header?Go语言中虚函数都在interface里面,普通类没有虚函数,所以不需要存储虚表。但是垃圾收集也需要有一个对象头来标记信息,反射信息也可能需要对象头来记录。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required