performance - ETS 操作运行时
问题描述
delete_object
ets 包的运行时间是多少?鉴于存在n
具有相同 key 的条目,k
运行时delete_object
是O(n)
还是O(1)
?如果确实是O(1)
,该lookup
操作如何返回按插入时间排序的所有元组?
谢谢!
解决方案
erlang 邮件列表上的这篇文章来自 2011 年,但我认为它可能仍然存在:
http://erlang.org/pipermail/erlang-questions/2011-October/061705.html
Sverker Eriksson 给出的答案暗示查找时间将O(n)
取决于相等键的数量:
插入/查找/删除分散键的平均恒定时间。具有许多相同键的包可能会导致性能不佳,因为这将导致具有相同键的对象之间的线性搜索(以及碰巧散列到同一个桶的其他对象)。
推荐阅读
- python - 在 db 中达到特定对象的特定计数后,针对特定用户,避免 Django 模型创建对象
- http - Firefox:CORS 缺少允许标头
- python - 在python中解析pdf时删除表格或表格
- rss - 如何在 TWS 中处理 IBKR 中的 RSS?
- vue.js - 如何在vuejs中将url图像从父组件传递给子组件
- flutter - 如何使用边距为 30 的容器中的行制作 3*3 容器,如矩阵,我是颤振的初学者
- oracle - 包括integration_id在内的四个特殊的oracle迁移字段到底是什么
- c# - Microsoft.UI.Xaml.Markup.XamlParseException:“XAML 解析失败。”
- powershell - 如何在 Outlook 2019 用户定义字段“ABC”中搜索值“123”并显示所有匹配的联系人(使用 Powershell)?
- angular - 在查询参数中传递数组Angular HttpClient