Go语言初步初步优化实践 | 青训营笔记

78 阅读2分钟

1.1 高质量代码的 各种边界条件是否考虑完备 异常情况处理,稳定性保证 维护性 1.2小技巧 使用gofmt自动化格式代码 gofmt是一个Go官方提供的工具,格式化为 goimport,会对依赖包进行管理,自动增删改查报的引用,按字母顺序分类。和Java的import有很大的相似之处。 1.3注释的好处 注释就是对代码的解释,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。

注释只是为了提高可读性,不会被计算机编译。 1.4注释的作用 注释是解释代码的作用。Go对于代码的注释有一套严格的规范如公共符号和函数的作用


// if perr, ok := err.(*fs.PathError); ok {
//    fmt.Println(perr.Path)
// }
//
// because the former will succeed if err wraps an *fs.PathError.
package errors

// New returns an error that formats as the given text.
// Each call to New returns a distinct error value even if the text is identical.
func New(text string) error {
   return &errorString{text}
}

// errorString is a trivial implementation of error.
type errorString struct {
   s string
}

func (e *errorString) Error() string {
   return e.s
}

以上是以error包的注释例子

2.1性能优化方法Benchmark 通过调用软件发现软件的优化以及是否有重复调用。

2.2Slice作用 slice预分配内存 我们可以使用make在初始化时切片提供容量信息。 防止应用在调用时不断创建数组 预分配只有一次内存分配

2.3Map的应用 情况1 不断向map中添加元素会触发map扩容操作。 情况2 减少拷贝和Rehash消耗。

2.4atomic包 锁的实现通过操作系统来实现,属于系统调用 通过硬件来实现,比锁高

3.0 性能分析工具pprof 可以知道应用消耗的CPU和memory 是可视化软件