为什么要将compile_pattern用于binary:replace?

4 erlang performance

是否有任何文档说明为什么应该使用compile_pattern/1结果作为binary:replace/4搜索模式?

我怀疑这是出于性能原因,但我找不到任何官方说明的内容.

Ste*_*ski 6

我不知道任何明确说明它的文档,但是是的,这是出于性能原因.如果将未编译的模式传递给binary模块中的调用,它们将编译模式然后使用它.这意味着对于单次使用,首先编译并不重要,因为无论如何调用都会编译它.但是如果你使用相同的模式执行多个匹配或替换,那么在前面编译它然后将编译的模式传递给每个调用是有意义的.