【发布时间】:2017-11-28 21:08:00
【问题描述】:
当我有这样的代码时:
receive do
{:hello, msg} -> msg
end
假设我的邮箱中有N 消息。查找此特定消息的性能是O(1)、O(N),还是介于两者之间?
【问题讨论】:
-
不是 O(1)。另外,假设您的接收中有 N 个子句? O(N-shite)?
-
除了所有这些关于选择性接收的复杂性/性能的讨论(这显然是模式数量、它们的复杂性以及在某些情况下消息数量的函数)之外,不要忘记一个好的设计应该限制子句的数量,促进模式匹配(例如使用格式 {Tag,Rest}),并且消息队列的理想大小为 0(因此垃圾消息)。