pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

Java 中的并行 XML 解析

Parallel XML Parsing in Java(Java 中的并行 XML 解析)
本文介紹了Java 中的并行 XML 解析的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在編寫一個應用程序,它處理大量具有深層節點結構的 xml 文件 (>1000).使用 woodstox (Event API) 大約需要 6 秒來解析一個包含 22.000 個節點的文件.

I'm writing an application which processes a lot of xml files (>1000) with deep node structures. It takes about six seconds with with woodstox (Event API) to parse a file with 22.000 Nodes.

算法被放置在與用戶交互的過程中,其中只有幾秒鐘的響應時間是可以接受的.所以我需要改進如何處理xml文件的策略.

The algorithm is placed in a process with user interaction where only a few seconds response time are acceptable. So I need to improve the strategy how to handle the xml files.

  1. 我的進程分析 xml 文件(僅提取幾個節點).
  2. 處理提取的節點并將新結果寫入新數據流(生成帶有修改節點的文檔副本).

現在我正在考慮一種多線程解決方案(在 16 Core+ 硬件上可以更好地擴展).我想到了以下策略:

Now I'm thinking about a multithreaded solution (which scales better on 16 Core+ hardware). I thought about the following stategies:

  1. 創建多個解析器并在 xml 源上并行運行它們.
  2. 重寫我的解析算法線程保存以僅使用解析器的一個實例(工廠,...)
  3. 將 XML 源拆分成塊并將這些塊分配給多個處理線程(map-reduce xml - 串行)
  4. 優化我的算法(StAX 解析器比 woodstox 更好?)/使用內置并發的解析器

我想同時提高整體性能和每個文件"的性能.

您有解決此類問題的經驗嗎?最好的方法是什么?

Do you have experience with such problems? What is the best way to go?

推薦答案

  1. 這一點很明顯:只需創建幾個解析器并在多個線程中并行運行它們.

  1. This one is obvious: just create several parsers and run them in parallel in multiple threads.

看看 Woodstox 性能(暫時關閉,試試 google 緩存).

Take a look at Woodstox Performance (down at the moment, try google cache).

如果您的 XML 結構是可預測的,則可以做到這一點:如果它有很多相同的頂級元素.例如:

This can be done IF structure of your XML is predictable: if it has a lot of same top-level elements. For instance:

<element>
    <more>more elements</more>
</element> 
<element>
    <other>other elements</other>
</element>

在這種情況下,您可以創建簡單的拆分器來搜索 <element> 并將此部分提供給特定的解析器實例.這是一種簡化的方法:在現實生活中,我會使用 RandomAccessFile 來查找起點 (<element>),然后創建僅對文件的一部分進行操作的自定義 FileInputStream.

In this case you could create simple splitter that searches <element> and feeds this part to a particular parser instance. That's a simplified approach: in real life I'd go with RandomAccessFile to find start stop points (<element>) and then create custom FileInputStream that just operates on a part of file.

看看 Aalto.創造伍德斯托克斯的人.這是該領域的專家 - 不要重新發明輪子.

Take a look at Aalto. The same guys that created Woodstox. This are experts in this area - don't reinvent the wheel.

這篇關于Java 中的并行 XML 解析的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Upload progress listener not fired (Google drive API)(上傳進度偵聽器未觸發(Google 驅動器 API))
Save file in specific folder with Google Drive SDK(使用 Google Drive SDK 將文件保存在特定文件夾中)
Google Drive Android API - Invalid DriveId and Null ResourceId(Google Drive Android API - 無效的 DriveId 和 Null ResourceId)
Google drive api services account view uploaded files to google drive using java(谷歌驅動api服務賬戶查看上傳文件到谷歌驅動使用java)
Google Drive service account returns 403 usageLimits(Google Drive 服務帳號返回 403 usageLimits)
com.google.api.client.json.jackson.JacksonFactory; missing in Google Drive example(com.google.api.client.json.jackson.JacksonFactory;Google Drive 示例中缺少)
主站蜘蛛池模板: 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 陕西安闸机-伸缩门-车牌识别-广告道闸——捷申达门业科技 | 渗透仪-直剪仪-三轴仪|苏州昱创百科| 立式矫直机_卧式矫直机-无锡金矫机械制造有限公司 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 真空乳化机-灌装封尾机-首页-温州精灌| RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 自动焊锡机_点胶机_螺丝机-锐驰机器人 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 苏州防水公司_厂房屋面外墙防水_地下室卫生间防水堵漏-苏州伊诺尔防水工程有限公司 | 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 全国国际化学校_国际高中招生_一站式升学择校服务-国际学校网 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 首页_中夏易经起名网| 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 | 浙江宝泉阀门有限公司 | 散热器-电子散热器-型材散热器-电源散热片-镇江新区宏图电子散热片厂家 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 |