`
chaoslawful
  • 浏览: 198428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Erlang ETS/DETS性能评测

阅读更多

目的

Erlang自带了名为ETS(Erlang Term Storage)的纯RAM存储系统,以及名为DETS(Disk-based Erlang Term Storage)的RAM/Disk混合存储系统。为了评价ETS/DETS的性能并和Memcached进行比较,需要进行本测试。

 

测试环境

公司配发的笔记本,Intel Duo 1.8GHz(双核),1GB RAM,60G SATA HD,Linux kernel 2.6.24(Ubuntu 8.04 Hardy)。


Erlang OTP/R12B4,使用自带的ETS/DETS模块。


Memcached 1.2.2,使用libmemcached 0.22作为客户端。

 

测试用例

循环插入100w次简单键值对,键值均为32-bit整数循环变量值,因此每个键值对的有效大小为(4+4)=8个byte。

 

测试结果

Erlang ETS

运行时间1.914s,QPS 522466.04

 

Erlang DETS

运行时间45.603s,QPS 21928.38

 

Memcached

运行时间54.22s,QPS 18443.3

 

初步结论

在测试使用的场景下,可以看出Erlang ETS的性能遥遥领先,这应该是因为ETS存储资源都在单个OS进程内,无须额外协议进行交互所致;Erlang DETS和Memcached的性能基本一致。

 

分享到:
评论

相关推荐

    ets和Dets

    在Erlang编程环境中,ETS(Erlang Term Storage)和Dets(Disk-based ETS)是两种重要的数据存储机制,它们提供了高效的数据管理和访问功能。这篇文章将深入探讨这两个概念,以及它们在实际开发中的应用。 ETS是...

    Erlang6大数据存储方式总结

    在Erlang中,处理大数据存储有多种方式,其中包括ETS(Erlang Term Storage)、DETS(Distributed Erlang Term Storage)、Mnesia以及MySQL等。下面将对这些存储方式进行详细解析。 1. ETS(Erlang Term Storage) ...

    Erlang程序设计(第二版)及源码

    书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、ETS和DETS等主题。...

    erlang深度分析.pdf

    Erlang的工具箱提供了多种性能优化工具,比如ETS和Dets的选择,以及erts_debug模块,可以帮助开发者发现性能瓶颈并加以改进。 #### 16. 开发社区和资源 Erlang有活跃的开源社区和丰富的学习资源,包括书籍、教程、...

    Erlang程序设计(第2版)1

    ETS(Erlang Term Storage)和DETS(Distributed Erlang Term Storage)是Erlang中的两个内置数据库系统,用于存储和检索Erlang术语。ETS是内存中的数据库,适用于高速访问和低延迟需求,而DETS则提供了持久化存储。...

    Erlang深度分析

    这包括了解ETS(Erlang Term Storage)和Dets(Disk ETS)的使用,以及如何监控和调整内存分配。 ##### 3.2 Erlang中的调试工具 调试是软件开发中不可或缺的环节,Erlang提供了许多强大的调试工具,例如Erlang的...

    erlang 深度分析

    - **多进程共享**: 多个Erlang进程可以共享一个ETS表。 - **并发访问**: 支持并发读写操作。 - **持久化**: 虽然默认是内存存储,但可以通过配置实现持久化。 #### 8. Erlang进程堆内存增长算法 - **算法特点**:...

    Erlang程序设计第二版

    在存储方面,Erlang提供了ETS(Erlang Term Storage)和DETS(Disk Erlang Term Storage)两种数据存储机制。ETS是一个内存中数据存储系统,提供了快速的键值存储;而DETS是一个磁盘上的持久化存储系统,它允许在...

    erlang程序设计中文版

    它不仅包含顺序编程的基础知识,还深入探讨了文件和网络编程、OTP(Open Telecom Platform)、ETS(Erlang Term Storage)和DETS(Disc Erlang Term Storage)等高级主题,这些都是开发高效Erlang应用程序的关键技术...

    inside Erlang VM3

    ### Erlang VM (Erlang虚拟机)深入解析 #### Erlang简介 Erlang是一种通用、并发、强容错的编程语言,最初由爱立信公司开发,旨在解决电信系统的高并发、高可靠需求。它运行在Erlang虚拟机(Erlang Virtual Machine...

    otp_win64_25.0.4.rar

    10. **并发原语**:如ETS(Erlang Term Storage)和DETS(Disk-based ETS),提供高效的数据共享和持久化。 总的来说,"otp_win64_25.0.4.rar"文件代表了Erlang OTP的一个关键组成部分,它为Windows用户提供了在64...

    kai:井上武的 DHT 存储

    300ms 请求 99% 相当平衡的负载一致散列、节点、桶二级索引存储后端:ETS、DETS 法定人数协调员一个个同步数据基于八卦的协议成员资格内存缓存接口目标256个节点32 GB/节点整个系统 100,000 qps 物理安置默克尔树...

    rules_engine:基于Elixir的规则引擎原型

    4. **ETS和DETS**:Erlang Term Storage (ETS) 和 Distributed Erlang Term Storage (DETS) 提供高效的数据存储,可用于存储和检索规则或中间计算结果。 5. **并发与并行**:Elixir的进程模型使得并发编程变得简单且...

    the-little-elixir-otp-guidebook-code:The Little Elixir&OTP Guidebook的代码示例

    - `ETS`和`DETS`目录包含了使用Erlang Term Storage (ETS)和Distributed ETS (DETS)进行数据持久化和快速访问的例子。 - `gen_statem`目录则涉及到了更高级的GenServer变体,它允许在不同状态间切换,提供了更灵活的...

Global site tag (gtag.js) - Google Analytics