0

我正在尝试通过arelle解析 xbrl 文件(1.35Gb) 。在调试过程中,我发现执行保持在ModelDocument.py:157行。它保持超过30分钟。Python 进程占用大约 8Gb RAM 并缓慢增加内存消耗:

在此处输入图像描述

看起来 python 以 20-50Kb/s 的速度解析 xml,这非常慢。特别是如果我们考虑到 python 有C优化代码。另请注意,我有 1 个核心 100% 加载,因此 CPU 做了一些繁重的工作(但究竟是什么?)

任何想法如何加快 xbrl 解析?

系统:Windows 10、Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05)

4

1 回答 1

0

从长远来看,也许我的回答与 XBRL 处理器的开发人员更相关,但我鼓励看看是什么让实例流友好,特别是 XBRL 国际的以下候选推荐:

https://specifications.xbrl.org/work-product-index-streaming-extensions-streaming-extensions-1.0.html

以流式方式生成和使用大型 XBRL 实例有助于避免在解析调用中卡住的问题,即不是批量加载和解析整个实例,流式处理减少了内存压力,因为事实可以在飞到处理器的内部存储器结构。

一般来说,仅仅通过 1-2 GB 的数据流做简单的事情需要不到一分钟的时间。如果需要 30 分钟,看来处理器的实现有优化潜力。我不认为这只是 Arelle 的问题,而且我认为随着更多用户打开更大的文件,实施者将在某个时候开始研究这个问题。

于 2019-11-15T07:58:27.123 回答