- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 R 中的 xml2 包解析一些非常大的 xml 文件。read_xml() 成功加载了大文件,但是当我尝试使用 xml_find_all() 时,我收到“错误:内存分配失败:增长的节点集命中”限制。”我假设这个限制是在 libxml2 中设置的,也许是在 XPATH_MAX_NODESET_LENGTH var 中设置的?所以也许这不是 xml2 包本身的问题。但是 xml2 中有可能的解决方案吗?我尝试删除节点并释放内存,但没有成功。谢谢。
最佳答案
是的,您已经达到了 libxml2 XPath 引擎的硬编码节点集限制。来自xpath.c:
/*
* XPATH_MAX_NODESET_LENGTH:
* when evaluating an XPath expression nodesets are created and we
* arbitrary limit the maximum length of those node set. 10000000 is
* an insanely large value which should never be reached under normal
* circumstances, one would first need to construct an in memory tree
* with more than 10 millions nodes.
*/
#define XPATH_MAX_NODESET_LENGTH 10000000
一种选择是使用不同的值重新编译libxml2。或者您可以更改 XPath 表达式,以便它们永远不会遇到大于 10M 节点的节点集。请注意,此限制也适用于表达式求值期间创建的中间节点集。因此,不幸的是,使用谓词对节点集进行分段不会工作:
//element[position() < 5000000]
//element[position() >= 5000000 and position() < 10000000]
//element[position() >= 10000000 and position() < 15000000]
本质上,您必须确保每个 NodeTest不返回超过 10M 的节点。如果你做不到这一点,那你就很不幸了。
您还可以在 libxml2 mailing list 上提出此问题。我猜想引入此限制是为了防止可能导致拒绝服务攻击的恶意 XPath 表达式。但在我看来,表达式返回的节点永远不会多于输入文档中存在的节点。因此,节点集使用的最大内存量无论如何都受到输入文档大小的限制。
关于r - 获取内存分配失败: growing nodeset hit limit with xml2 package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159864/
是否有令人信服的理由在 mturk 上为 HIT 建立外部网站?也就是说,如果任务是通过页面上的 javascript 运行的,为什么不简单地将其粘贴到 mturk 上的源代码中并在那里运行,通过其
在 Amazon Mechanical Turk 上,我在 HIT 中添加了一个指向外部网页的链接,工作人员将在其中执行实际的 HIT。但是,我想对工作人员隐藏该链接,直到他们接受 HIT。 可以通过
我面临的问题是 SCNView.hitTest 不检测对我在 cpu 上动态修改的几何体的命中。 这是概述:我有一个使用 SCNGeometry 的节点从 MTLBuffer 创建顶点数: func
我有一个观察者配置如下: { "trigger": { "schedule": { "interval": "5s" } }, "input" : {
我又遇到了一个正则表达式问题 - 我需要测试一个字符串是否出现模式 - 它可以隐藏在字符串中的某个位置 - 就在前面,前面但前面有一个空格,中间的某个地方或在结束,也许在末尾后面跟着一个空格。 我认为
我又遇到了一个正则表达式问题 - 我需要测试一个字符串是否出现模式 - 它可以隐藏在字符串中的某个位置 - 就在前面,前面但前面有一个空格,中间的某个地方或在结束,也许在末尾后面跟着一个空格。 我认为
我们正在开发我们网站的全新移动版本,它是一个使用 Sencha Touch 2(Ext JS、JavaScript)编写的 HTML5 网站。 我们在主网站上使用 Google Analytics,我
我想写一个这样的sql: "Update tablename SET hits = hits + 1 WHERE id = $id" 在zf2中,我们使用了TableGateway,我写的代码: $t
我使用 golang elastic 5 API 在 ElasticSearch 中运行查询。我使用 searchResult.TotalHits() 检查命中数,它给了我一个很大的数字(超过 100
我正在 Amazon Mturk 开展一个项目。我使用 Python Boto API。 boto.connection.create_HIT() 方法返回一个 ResultSet 对象,我试图从中获
最近我在使用 rails 项目,并使用 simplecov 生成了代码覆盖率报告。 ,我在下面得到了一份不错的报告。我知道这是一个简单的问题(我搜索了很多次但没有得到任何正确的解释) can anyo
相当复杂...我有两个表,t1 包含有关特定对象的描述信息,第二个表 t2 包含用于解码 t1 中对象的信息。 我将尝试提供一个简单的示例: ---- t1 (Name, Type, Size, Co
我们通过 Amazon Mechanical Turk 提供供两名玩家使用的基于网络的游戏。对于每场比赛,我们需要两名玩家同时进入,或最多相隔 1 分钟。我们注意到,在我们发布 HIT 后的前几分
我对 Elasticsearch 相当陌生,我一直在尝试对我的数据进行搜索,并且总是让点击部分为空。即使在数据上传和索引之后也会发生这种情况。我的映射如下: { "mappings":{
我目前正在关注 David Roonqvist 的 3D Graphics with SceneKit 一书。 第 5 章涉及 HitTest ,实现它没有问题,但只涉及他对鼠标事件的测试。 现在,我
对于外部问题,当工作人员在预览模式下查看 HIT 时,发送的 URL 类似于: /mturk?assignmentId=ASSIGNMENT_ID_NOT_AVAILABLE&hitId=3FSEU3
我正在 Agda 中试验同伦类型理论。我使用 HIT 来定义整数: {-# OPTIONS --cubical --safe #-} open import Cubical.Foundations.P
我正在实现一个网站,招募的 MTurk worker 将在该网站上执行任务。我计划使用 MTurk 任务招聘 worker ,我会将他们重定向到外部网站以进行实际工作。我有以下与此计划有关的问题。 这
当我使用以下搜索(/posts/_search)时,我的hits.total为1400: {"query": {"query_string": {"query": "Bitcoin"}}} 当我使用以
我有这样的有效负载,所有文档中都会出现相同的有效负载,但每个文档中每个标签的权重都不同。 { "tags": [ { "tag": "tag1", "weight"
我是一名优秀的程序员,十分优秀!