gotips 001: 一行代码测量函数的执行时间

Golang Tips 是翻译的 Phuong Le @func25 陆陆续续的发表的推文,目前已经发表 70+了。我征得Phuong Le 的同意后,会逐步把这些推翻翻译过来,发布到公众号上。

因为是推文,可能原作者的内容比较简单,比如第一个 tip 就一张图片,我会相应的进行扩充,丰富其内容。
后续也会在 github 建立一个项目,大家都可以参与进行翻译。

阅读全文

类型安全的Pool

池(sync.Pool)是一组可单独保存(Set)和检索(Get)的临时对象集合。

存储在池中的任何项都可能在任何时候自动移除而无需通知。如果池在移除项时持有该对象的唯一引用,那么这个对象可能会被释放掉。

池能够确保在多个goroutine同时访问时的安全性。

池的目的在于缓存已分配但未使用的对象以便后续复用,减轻垃圾收集器的压力。

阅读全文

一道面试题: Top K 问题

最近在招一个Go开发工程师,面试中时候我会问一个Top K的问题,这个问题是一个经典的面试题。

有时候我不会要求面试者写出答案,首先我听一下他的思想,如果写代码困难的话我都允许可以上网查标准库的文档,看看heap的用法。

相对来说比Redis的作者antirez的面试要轻松些了,他的面试题是要求面试者写出一个二叉搜索树。

阅读全文