随笔-201812

  • Linux使用命令

上传/下载:rz/sz

  • go语言局部变量保存在栈上还是保存在堆上?

go编译器有个特性,叫做“逃逸分析”,分析局部变量的作用域是否逃出函数的作用域,要是没有,那么就放在栈上;要是变量的作用域超出了函数的作用域,那么就自动放在堆上。所以不会像C++一样,会在退出栈是清除。

  • go语言对变量的处理和存储更加的高效

https://www.jianshu.com/p/d70e6f6b13c8

越紧凑越高效

  • go语言通过函数内联才降低函数调用的开销

疑问:go语言是如何判断何时该内联呢?

  • 目前程序只能从上往下顺序执行,但是有了JMP或者称之为地址后,有了无限可能,函数回调难道是什么难题吗?
  • 共享意味着不安全,go中slice被设置为指向数组的指针,当需要对slice扩容时,实际上是将底层数据拷贝至一个容量更大的数组,然后指向这个新数组。同时,设置为指针,也意味着允许多个slice指向同一块底层数组。
  • go select含义很简单,就是用来监听Channel的IO操作。可以通过查看go-core中的config->zk.go来学习select语句的使用方法。
  • go sync.WaitGroup只有三个方法,add()、done()其实相当于add(-1)、wait(),其主要作用在于协程同步。
  • 数据库索引的作用
          简而言之就是加快检索速度的一种方式。与此同时,每次新增、修改、删除的时候都需要维护索引,带来一定的性能损耗。常见的索引有B树、有倒排索引等。
  • 什么是事务?事务是保证数据一致性的一种手段。
  • EBP(Extended Base Pointer):扩展基址指针寄存器(基址指针寄存器),初始化为main函数入口地址。在发生函数调用时,会申请新的栈帧,然后将调用时刻(PC)的地址压入栈底,以便回调使用。
     

猜你喜欢

转载自blog.csdn.net/jinyidong/article/details/85009296