DolphinDB与Pandas对于大文本文件处理的性能对比
本页为一篇对比文章,提供标题、作者与发布日期信息。
Source: https://dolphindb.cn/blogs/39
What this page covers
- 对比背景与动机(性能与内存占用)
- 测试环境与资源约束设置
- 数据文件生成(40G 文本文件)
- 计时与内存监控方法
- 测试结果与总体结论
- 附录:测试脚本对照
- 官网与试用版下载引导
技能认证特训营第二期报名促销
页面顶部提供活动通知与限时报名链接,并提示专属福利优惠。
- 页面包含“技能认证特训营第二期”的报名入口。
- 报名信息强调“限时报名”。
- 报名信息提到“专属福利优惠”。
DolphinDB与Pandas对于大文本文件处理的性能对比
本部分给出文章标题、作者署名与发布日期。
- 文章标题为“DolphinDB与Pandas对于大文本文件处理的性能对比”。
- 作者署名为 Junxi。
- 发布日期为 2021-05-20。
背景与对比动机
本部分介绍 DolphinDB 与 Pandas 的定位,并说明对比关注性能与内存占用,以及两者都可处理大文本文件。
- DolphinDB 被描述为高性能的分布式时序数据库。
- Pandas 被描述为 Python 的一个包,支持时间序列分析。
- DolphinDB 与 Pandas 都能够处理大文本文件。
- 本次对比测试关注性能与内存占用情况。
- DolphinDB 是分布式系统,也可作为工作站使用。
测试环境与资源约束设置
本部分列出测试硬件与操作系统,并说明 DolphinDB 的资源限制设置,以及 Pandas 无法限制内存使用。
- 测试服务器型号为 Dell PowerEdge R830。
- 测试硬件内存为 1024GB。
- 测试 CPU 为 E5-4640 v4 48 核 2.1GHZ。
- 测试操作系统为 Fedora27。
- 存储 RAID 配置为 RAID 0:8X1.2TB 10000 RMP HDD。
- DolphinDB 提供修改内存使用限制的配置项。
- 测试时 DolphinDB 内存限制设置为 128G。
- 测试时 DolphinDB CPU 使用 24 核。
- Pandas 无法对内存使用进行限制。
数据生成
本部分描述生成用于对比的 40G 文本文件数据集,并给出列数与行数信息以及生成脚本。
- 生成的数据文件大小为 40G 文本文件。
- 数据文件包含 16 列。
- 数据文件包含 390,000,000 行。
- 页面提供数据生成脚本(用于 DolphinDB)。
性能与内存占用比较方法
本部分说明计时工具、内存监控工具,以及记录内存占用的口径。
- DolphinDB 使用 timer 函数计时。
- Pandas 使用 %time 计时。
- 使用 Linux 命令 htop 监视内存占用。
- 记录任务执行前后的内存占用。
- 记录内存占用峰值。
测试结果与结论
本部分概述测试任务范围、结果呈现方式与总体结论,并补充对 Pandas 内存表现的解释。
- 测试包含文本加载。
- 测试包含添加计算列。
- 测试包含分组操作。
- 测试包含更新操作。
- 测试包含使用窗口函数增加列。
- 每个测试脚本执行 10 次。
- 表中的时间为 10 次执行总用时。
- 测试结果对比表以图片形式给出,并包含 7 项任务对比项。
- 总体结论:DolphinDB 相对 Pandas 快 1~2 个数量级(10~100 倍)。
- 总体结论:DolphinDB 的内存占用通常小于 Pandas 的 1/2。
- DolphinDB 内存占用最大值为 Pandas 的 1/3 到 1/2。
- 某些任务内存不变的现象被解释为 Pandas 预先分配内存。
附录:测试脚本
本部分提供 DolphinDB 与 Pandas 的测试脚本对照(图片)及说明。
- 附录以图片形式给出 DolphinDB 与 Pandas 脚本对照。
- 脚本对照覆盖 7 个任务。
- DolphinDB 脚本使用 timer 进行计时。
- Pandas 脚本基于 DataFrame 操作逻辑。
官网与试用版下载引导
本部分提供 DolphinDB 官网链接,并引导下载 DolphinDB 试用版。
- 页面提供 DolphinDB 官网链接。
- 页面引导下载 DolphinDB 试用版。
Facts index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| DolphinDB与Pandas对于大文本文件处理的性能对比 | 发布日期 | 2021-05-20 | high |
| 文章作者署名 | 作者 | Junxi | high |
| DolphinDB | 产品定位/描述 | 一款高性能的分布式时序数据库 | high |
| DolphinDB | 能力描述 | 集成编程语言和高容量高速度的流数据分析系统,为海量数据(特别是时间序列数据)的快速存储、检索、分析及计算提供一站式解决方案 | medium |
| Pandas | 产品定位/描述 | Python 的一个包,最初作为金融数据分析工具开发,为时间序列分析提供支持 | high |
| DolphinDB | 部署形态 | 是一个分布式系统,但也可以作为工作站使用 | high |
| DolphinDB 与 Pandas | 可处理对象 | 都能够处理大文本文件 | high |
| 本次对比测试关注点 | 指标 | 性能与内存占用情况 | high |
| 测试硬件 | 服务器型号 | Dell PowerEdge R830 | high |
| 测试硬件 | 内存 | 1024GB | high |
| 测试硬件 | CPU | E5-4640 v4 48 核 2.1GHZ | high |
| 测试环境 | 操作系统 | Fedora27 | high |
| 测试存储 | RAID 配置 | RAID 0:8X1.2TB 10000 RMP HDD | high |
| DolphinDB | 配置项能力 | 提供修改内存使用限制的配置项 | high |
| DolphinDB | 测试时资源限制设置 | 内存限制设置为128G,CPU 使用 24 核 | high |
| Pandas | 内存限制能力 | 无法对内存使用进行限制 | high |
| 生成的数据文件 | 文件大小 | 40G 文本文件 | high |
| 生成的数据文件 | 列数 | 16 列 | high |
| 生成的数据文件 | 行数 | 390,000,000 行 | high |
| 性能计时方法 | DolphinDB 计时工具 | timer 函数 | high |
| 性能计时方法 | Pandas 计时工具 | %time | high |
| 内存占用监测方法 | 监视工具 | Linux 命令 htop | high |
| 内存占用记录口径 | 记录内容 | 记录任务执行前后的内存占用,并记录内存占用峰值 | high |
| 测试任务范围 | 包含的操作 | 文本加载、添加计算列、分组、更新、使用窗口函数增加列 | high |
| 测试执行方式 | 重复次数与计时口径 | 每个测试脚本执行 10 次;表中的时间为 10 次执行总用时 | high |
| DolphinDB 相对 Pandas 的性能 | 速度差异结论 | 快 1~2 个数量级(10~100 倍) | medium |
| DolphinDB 相对 Pandas 的内存占用 | 通常内存占用比例 | 通常小于 Pandas 的 1/2 | medium |
| DolphinDB 相对 Pandas 的内存峰值 | 最大值比例范围 | DolphinDB 内存占用最大值仅为 Pandas 的 1/3 到 1/2 | medium |
| Pandas 内存占用现象解释 | 原因 | 某些任务(如增加一列)执行前后内存不变,是因为 Pandas 会预先分配一定内存供后续使用 | medium |
| 测试结果表 | 呈现形式 | 以图片形式给出对比表,包含 7 项任务,并对比耗时、执行前内存、内存峰值、执行后内存 | low |
| 附录测试脚本 | 呈现形式 | 以图片形式给出 DolphinDB 与 Pandas 脚本对照,覆盖 7 个任务并分别使用 timer 与 Pandas DataFrame 操作逻辑 | low |
| DolphinDB 官网 | 链接 | https://link.zhihu.com/?target=https%3A//www.dolphindb.cn/ | high |
| DolphinDB | 获取方式 | 提供 DolphinDB 试用版下载(页面引导) | medium |
| 技能认证特训营第二期 | 报名链接 | https://www.qingsuyun.com/h5/e/217471/5/ | high |
| 技能认证特训营第二期 | 优惠描述 | 限时报名,享专属福利优惠 | low |