来自 java 的 libxml2

2024-01-18

这个问题有点相关用于 Java 中小型、简单文档的最快 XML 解析器 https://stackoverflow.com/questions/530064/fastest-xml-parser-for-small-simple-documents-in-java但还有一些细节。

我正在开发一个需要解析许多(数十百万)小型(大约 300k)xml 文档的应用程序。当前的实现使用 xerces-j,在 1.5 GHz 机器上每个 xml 文档大约需要 2.5 毫秒。我想提高这个性能。我看到这篇文章

http://www.xml.com/pub/a/2007/05/16/xml-parser-benchmarks-part-2.html http://www.xml.com/pub/a/2007/05/16/xml-parser-benchmarks-part-2.html

声称 libxml2 的解析速度比任何 java 解析器快一个数量级。我不确定我是否相信,但这引起了我的注意。有人尝试过从 jvm 使用 libxml2 吗?如果是这样,它比 java dom 解析(xerces)更快吗?我想我仍然需要 java dom 结构,但我猜测从 c 结构 dom 复制到 java-dom 应该不会花很长时间。我必须有 java-dom - 在这种情况下 sax 不会帮助我。

update:我刚刚为 libxml2 编写了一个测试,它并不比 xerces 快...尽管我的 C 编码能力非常生疏。

update我在这里扩大了问题的范围:为什么sax解析比dom解析快?斯塔税是如何运作的? https://stackoverflow.com/questions/3825206/why-is-sax-parsing-faster-than-dom-parsing-and-how-does-stax-work我对抛弃 dom 的可能性持开放态度。

Thanks


在 Java 中,StAXJSR-173 http://jcp.org/en/jsr/detail?id=173通常被认为是解析 XML 最快的方法。 StAX 有多种实现,Woodstox http://woodstox.codehaus.org/人们普遍认为实施速度很快。

为了提高性能,我会避免使用 DOM。你用 XML 做什么?如果您最终将其作为对象处理,则应该考虑 OXM 解决方案。标准是JAXBJSR-222 http://jcp.org/en/jsr/detail?id=173。 JAXB 实现例如MOXy http://www.eclipse.org/eclipselink/moxy.php(我是技术主管)甚至允许您进行部分映射,这将提高性能:

  • http://bdoughan.blogspot.com/2010/09/xpath-based-mapping-geocode-example.html http://bdoughan.blogspot.com/2010/09/xpath-based-mapping-geocode-example.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自 java 的 libxml2 的相关文章

  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • 使用 SAX 进行 XML 解析 |如何处理特殊字符?

    我们有一个 JAVA 应用程序 可以从 SAP 系统中提取数据 解析数据并呈现给用户 使用 SAP JCo 连接器提取数据 最近我们抛出了一个异常 org xml sax SAXParseException 字符引用 是无效的 XML 字符
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • 我可以在 XSLT 中创建模板吗?

    我想使用 XSLT 从 XML 创建 ASP NET 用户控件 目前我真的把结果一点一点地拼凑起来
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是

随机推荐

  • Symfony3 JWT 与 LexikJWTAuthenticationBundle 在预检选项上返回 404

    描述 我正在与LexikJWTAuthenticationBundle https github com lexik LexikJWTAuthenticationBundle并尝试使用从我的 Ionic2 应用程序发送的凭据生成 JWT 令
  • 实体框架一对多 TPH 映射

    我使用与此类似的数据结构 其中动物类型是根据表中的鉴别器列确定的 public class Farm public int Id get set public virtual ICollection
  • 在Excel中提取括号之间的数字?

    我一直在寻找这个问题的答案 但没有找到任何可以开始工作的东西 很可能是我对 Excel 的 小程 方面缺乏了解 无论如何 这就是我的情况 在 C2 C17 中 我设置了一些如下文本 2 工作名称 2 表示我们预计作业需要的小时数 其余部分是
  • 将全局 $stdout 重新分配给控制台 - ruby

    我试图将 stdout 设置为临时写入文件 然后再写入文件 test rb old stdout stdout stdout reopen mytestfile out w puts this goes in mytestfile stdo
  • 在 Doctrine2 的本机查询中获取未映射的字段

    我在 Symfony 3 和 Doctrine2 中有一个函数 它使用纬度和经度搜索最近的伙伴 public function findNearestPartner lat lng rsm new ResultSetMappingBuild
  • Web Api 2 API 无法识别路由的多个属性(版本控制)

    我正在尝试同时实现属性路由 http www asp net web api overview web api routing and actions attribute routing in web api 2和VersionedRout
  • 无需安装.net4.5即可运行webapi

    我有一个在asp net4 0下运行aspx页面的网站 我还有一些 DevExpress 控件 是我 4 年前购买的 我现在想向 Web 应用程序添加一个 API 但我知道这需要 net4 5 才能运行 DevExpress 控件在 4 5
  • 在内容 100% 完成之前从 HttpResponseMessage 读取标头

    在整个响应被传回之前 如何访问响应标头 当流到达时如何读取它 HttpClient 是接收 http 响应的精细控制的最佳选择吗 这是一个可以说明我的问题的片段 using var response await httpClient Sen
  • iOS 9 Ionic Cordova 应用程序在 iPhone 上崩溃;适用于 iPad

    Cordova v5 3 1 Ionic v1 1 0 库 v1 6 4 将我们的应用程序从 8 4 升级到 iOS 9 该应用程序在 iPad iPad mini 上构建并运行良好 然而 当部署到 iPhone 时 它 会崩溃 下面是调试
  • 错误:以非位置格式指定的多个替换;您的意思是添加 formatted="false" 属性吗?

    我有一个 Android 应用程序 它在构建过程中抛出以下错误 home Ralf Projekte University android sampleapp sampleapp build intermediates bundles de
  • 如何将 TreeViewItem 放入生成的 TreeViewItem 中?

    C TreeViewItem treeItem null treeItem new TreeViewItem treeItem Header Audit foreach cAuditTransactionTypeEntity tt in P
  • 使用新类别重新训练模型

    我构建了一个包含 2 个类的图像分类器 即 A 和 B 我还使用 model save 保存了这个模型 现在 在一段时间后 出现了添加一个 C 级的要求 是否可以使用 load model 然后仅向之前保存的模型添加一个类 以便我们拥有包含
  • 在 Eclipse 中附加源问题

    在 Eclipse Ganymede 中 我正在调试一些使用 Apache Commons HttpClient 的代码 并希望单步调试 HttpClient 代码 我已经下载了源代码并尝试以正常方式附加它 按住 CTRL 键单击方法名称并
  • 主机密钥验证失败

    我正在尝试通过装有 Cygwin 的 PC ssh 进入我的 UBUNTU 我可以顺利地 WINSCP 但是当我通过命令行 ssh 时 会出现以下错误 WARNING REMOTE HOST IDENTIFICATION HAS CHANG
  • css中的背景颜色不显示

    我的背景颜色有问题 它没有显示 我想要它是红色的 这是代码https jsfiddle net yPX5Q 22 https jsfiddle net yPX5Q 22 0000 更新 问题已解决 但我还有另一个问题 当我调整浏览器大小时
  • 调试适用于 Android 平台的 ionic 应用程序

    我一直在使用离子 我的应用程序使用离子服务工作得很好 然而 一旦我在 android 中启动 apk 它就会出现白色死屏并停留在那里 我可以通过哪些方式调试 Android 平台的 ionic 应用程序 我曾经研究过一些关于调试的知识 并了
  • Linq.Enumerable 中的索引越界

    我在正在处理的服务中间歇性地收到此错误 消息 System IndexOutOfRangeException 索引超出数组范围 在 System Collections Generic List1 Enumerator MoveNext a
  • 为Python编写Sweave

    我最近开始使用Sweave http www stat uni muenchen de leisch Sweave 用于创建使用 R 运行的分析报告 现在我希望对我的 python 脚本执行相同的操作 我找到了参考资料在 Sweave 中嵌
  • 分组算法

    我试图帮助某人编写一个我认为很容易的程序 但当然它从来都不是 我正在尝试制定一个班级名册 通常有 10 20 名学生 并有效地将每个同学与另一个同学有效地唯一配对 以形成独特的小组 因此 一个10人的班级 可以分成9组 它也需要能够处理奇数
  • 来自 java 的 libxml2

    这个问题有点相关用于 Java 中小型 简单文档的最快 XML 解析器 https stackoverflow com questions 530064 fastest xml parser for small simple documen