随笔分类 - go
摘要:#一、概述 ##(一)基本策略 1、程序每次先从系统申请一大块内存(比如1MB),减少向系统申请内存频率,也就是说,先给我整块大的,以后少找你,不够了,再找你要一块大的; 2、然后程序将大块内存,按照特定大小(后文将提到的sizeClass,单位可以理解为8字节)切分为小块(object),小块构成
阅读全文
摘要:##一.pprof Profiling 是指在程序执行过程中,收集能够反映程序执行状态的数据。在软件工程中,性能分析(performance analysis,也称为 profiling),是以收集程序运行时信息为手段研究程序行为的分析方法,是一种动态程序分析的方法。 GO中自带两个库可以进行程序分
阅读全文
摘要:#案例分析 package main import ( "math" "sync" "time" ) func doAllocate(nKB int, wg *sync.WaitGroup) { var slice []byte for i := 0; i < nKB; i++ { t := mak
阅读全文
摘要:#go普通指针、unsafe.Poniter、unintptr之间的联系 ##GO指针 . 普通指针 *type 普通指针,用于传递对象地址,不能进行指针运算 . unsafe.Poniter 通用型指针,用于不同类型指针的转换,不能进行指针运算,不能读取内存存储的值 . unintptr 可进行指
阅读全文
摘要:#1、返回多个值 函数或方法中返回超过四五个值的情况时,如果这些值是同一类型的话最好 使用一个切片来传递,如果其值类型各异则最好传递一个指向结构体的指针。 传递一个切片或一个指向结构体的指针的成本都比较低(在64位的机器上一个切片占16位,一个映射占8字节),同时也允许我们修改数据 #2、数组、切片
阅读全文
摘要:##1、Go 语言最主要的特性 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 ##2、$GOPATH目录约定有三个子目录 src存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go instal
阅读全文

浙公网安备 33010602011771号