Go 中如何有效的比较字符串

当优化软件时字符串比较可能和你想的有些不同。特别是包括拆分跨 goroutines 的循环, 找到一个更快的哈希算法,或者一些听起来更科学的方式。当我们做出这样的修改时,会有一种成就感。然而, 字符串比较通常是信息传递中(in a pipeline)的最大瓶颈。下面的代码段经常被使用,但它是最糟糕的解决方案 (参见下面的 benchmarks),并导致了实际问题。 ```go strings.ToLower(name) == strings.ToLower(othername) ```...阅读全文

阅读:10192 评论:1

并发问题的解决思路以及Go语言调度器工作原理

上周的文章《Go并发编程里的数据竞争以及解决之道》最后留下了一个用并发解决的思考题,期间有几位同学留言说了自己的实现思路,也有两位直接私信发代码让我看的,非常感谢几位的积极参与。今天的文章我首先说一下上篇文章里的思考题的解决思路,我会给出完整可运行的代码。之后通过观察程序的运行结果里的现象简单介绍Go语言的调度器是如何对goroutine进行调度的。 回答上周的问题 先来回顾一下上周文章里思考题的题目: 假设有一个超长的切片,切片的元素类型为int,切片中的元素为乱序排列。限时5秒,使用多个go...阅读全文

2020年06月05日 kevinyan
阅读:364 评论:0