会是怎样匹配等之间的区别:二郎二进制匹配效率
fun(Binary) ->
[Value, Rest] = binary:split(Binary, <<101>>)
end
和
fun(Binary) ->
[Value, <<Rest/binary>>] = binary:split(Binary, <<101>>)
end
我想到一个可以简单地增加一个计数器,因为它穿越二进制,保持子二进制指针,另一个会复制一个新的二进制文件。有任何想法吗?
会是怎样匹配等之间的区别:二郎二进制匹配效率
fun(Binary) ->
[Value, Rest] = binary:split(Binary, <<101>>)
end
和
fun(Binary) ->
[Value, <<Rest/binary>>] = binary:split(Binary, <<101>>)
end
我想到一个可以简单地增加一个计数器,因为它穿越二进制,保持子二进制指针,另一个会复制一个新的二进制文件。有任何想法吗?
我可以用两种方式来思考模式匹配。
方法1:
[A,B] = [<<"abcd">>,<<"fghi">>]
方法2:
[A, <<B/binary>>] = [<<"abcd">>,<<"fghi">>]
除非你需要使它肯定B是二进制的,方法2将它更长的时间,几微秒,因为它不只是给B分配< <“fghi”>>,但是也要确保它是bianary。
但是,如果您需要比方法2更多的解析,则可以继续进行,而方法1无法执行。
[A, <<B:8, Rest/binary>>] = [<<"abcd">>,<<"fghi">>].
我想你可以通过timer
模块的tc/N
函数来测试它。