前言
在 Go 1.7 版本之前,context 还是非编制的,它存在于 gol...
Go是一门带有垃圾回收的现代语言,它抛弃了传统C/C++的开发者需要手动管理内存的方式,实现了内存的主动申请和释放的管理。Go的垃圾回收,让堆和栈的概念对程序员保持透明,它增加的逃逸分析与GC,使得程序员的双手真正地得到了解放,给了开发者更多的精力去关注软件设计本身。
就像...
今天我们来聊聊golang是如何进行垃圾回收的。我们知道,目前各语言进行垃圾回收的方法有很多,如引用计数、标记清除、分代回收、三色标记等,各种方式都有其特点,GO语言在发展过程中, 其GC算法也是不断改进的。
GO的GC里程碑
哈希表的意义不言而喻,它能提供 O(1) 复杂度的读写性能,所以主流编程语言中都内置有哈希表。
哈希表的关键在于哈希函数, 好的哈希函数能减少哈希碰撞,提供最优秀的读写性能。
哈希碰撞
因为没有完美的哈希函数, 所以哈希碰...
1.1 链表
举单链表的例子,双向链表同理只是多了pre指针。
定义单链表结构:
本文翻译自《A visual guide to Go M...
前言
面向对象程序设计是一种计算机编程架构,英文全称:Object Oriented Programming,简称OOP。OOP的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三个主要目标:重用性、灵活性和扩...
在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和 内存 的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling
go test工具
Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。
go test命令是一个按照一定约定和组织的测试代码的驱动...
在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。如果命令行参数纯粹自己写代码来解析,对于比较复杂的,还是挺费劲的。在 go 标准库中提供了一个包:flag,方便进行命令行解析。