什么是快路径、慢路径、热路径
我已经阅读了一段时间的 Go 源代码,有三个术语,即fast path, slow path,hot path出现了很多。
- 快速路径:https : //cs.opensource.google/search?q=%22fast%20path%22&ss=go%2Fgo
- 慢路径:https : //cs.opensource.google/search?q=%22slow%20path%22&ss=go%2Fgo
- 热点路径:https : //cs.opensource.google/search?q=%22hot%20path%22&ss=go%2Fgo
所以,我的问题是,到底是什么fast path,slow path,hot path?这些术语是 Go 独有的吗?
回答
快路径是快的路径(即做更少的工作),而慢的路径是慢的路径(即做更多的工作)。例如,在向hashmap 添加值时,仅将值粘贴到空桶中是快速路径,而增加桶的数量,将所有值复制到新位置,然后插入新值是慢速路径. 添加浮点数时,其中一个是非正规数的情况是一条慢速路径,比普通数的路径慢很多倍。“路径”的概念表明,根据情况或提供的值,对于给定的函数,任何一个都可能发生;这不是快或慢的选择。
“热”路径是大部分时间采用的路径,而“冷”路径是很少采用的路径。热路径是优化的好目标,因为它们是程序花费大部分时间的地方。当热道也是快道,而慢道也是冷的时候,幸福就会发生。
这些都不是 Go 特有的。它是计算领域的常用术语。