Fred

学习是反复的事情

Fred's Github chart

1-12. go链接参数 ldflags

1 前戏:”链接“基础概念 参考文章:http://blog.champbay.com/2019/11/25/%e9%9d%99%e6%80%81%e9%93%be%e6%8e%a5%e5%8a%a8%e6%80%81%e9%93%be%e6%8e%a5%e9%9d%99%e6%80%81%e5%ba%

1-11. go条件编译

go支持两种条件编译的实现方式 编译标签(build tags) //go:build !windows 和 // +build !windows 文件后缀 条件编译的应用场景 平台适配:不同平台的操作系统和 CPU 架构可能有不同的特性和限制,需要针对不同平台编写不同的代码。通过条件编译,可以根据不同平台选择不同的代码进行编译,从而提高程序的性能和稳定性。 调试信息:在开发和调试过程中

1-10. 内联优化

1 什么是内联? 内联是将较小的函数合并到它们各自的调用者中的行为。其在不同的计算历史时期的做法不一样,如下: 早期:这种优化通常是由手工完成的。 现在:内联是在编译过程中自动进行的一类基本优化之一。 2 为什么内联很重要? 内联是很重要的,每一门语言都必然会有。具体的原因如下: 它消除了函数调用本身的开销。 它允许

1-9.Go语言内存对齐

1 基础知识 在Go语言中,我们可以通过 unsafe.Sizeof(x) 来确定一个变量占用的内存字节数(不包含 x 所指向的内容的大小)。 例如对于字符串数组,在64位机器上,unsafe.Sizeof() 返回的任意字符串数组大小为 24 字节,和其底层数据无关: 1 2 3 4 5 6 func main() { s := []string{"1", "2", "3"} s2 := []string{"1"} fmt.Println(unsafe.Sizeof(s)) // 24 fmt.Println(unsafe.Sizeof(s2)) // 24 } 对于Go语言的内置类型,占用内存大

1-8.Go和Python中的深浅拷贝

1 1. Golang go 深拷贝, 就是拷贝值 go 浅拷贝, 拷贝引用 go中赋值就能实现拷贝,针对引用类型(slice,map,channel)是浅拷贝,对值类型是深拷贝 1、深拷贝(Deep Copy): 拷贝的是数据本身,创造一个样的新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改

1-7.Go中的Defer

Defer知识点 Defer 是在函数结束之前,return之前 执行一些逻辑, return之后的语句先执行,defer后的语句后执行 1 1. defer的执行顺序 多个defer出现的时候,它是一个“栈”的关系,也就是先进后出。 2 2. defer与return谁先谁后 Defer 是在函数结束之前,return之前 执行一些逻辑 retu

1-6.Go面向对象的思维理解interface

一. interface interface 是方法声明的集合 任何类型的对象实现了在interface 接口中声明的全部方法,则表明该类型实现了该接口。 interface 可以作为一种数据类型,实现了该接口的任何对象都可以给对应的接口类型变量赋值。 interface 可以被任意对象实现,一个类型/对象也可以实现多个 interface 方法不能重载,如 eat(), eat(s string) 不能同时存在 接口(interface

1-5.Go中逃逸现象, 变量+堆栈

一. 栈和堆 栈内存: 栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量),for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局

1-4.Go协程调度原理及GPM模型

1 一. 提高cpu利用率 最早的并发能力:多进程并发,当一个进程阻塞的时候,切换到另外等待执行的进程,这样就能尽量把CPU利用起来,CPU就不浪费了。 多进程、多线程已经提高了系统的并发能力,但是在当今互联网高并发场景下,为每个任务都创建一个线程是不现实的,因为会消耗大量的内存(进程虚拟内存会占用4GB[

1-3.Go语言中的并发编程

Go语言中的并发编程 1 1. 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天)。 Go语言的并发通过goroutine实现, 协程。goroutine类似于线程,属于用户态的线程,我们可以根据需要创建成千上万个gorouti
0%