久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何在 Java 中高效地解析 200,000 個 XML 文件?

How can I efficiently parse 200,000 XML files in Java?(如何在 Java 中高效地解析 200,000 個 XML 文件?)
本文介紹了如何在 Java 中高效地解析 200,000 個 XML 文件?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有 200,000 個 XML 文件要解析并存儲在數據庫中.

I have 200,000 XML files I want to parse and store in a database.

這里是一個例子:https://gist.github.com/902292

這與 XML 文件一樣復雜.這也將在小型 VPS (Linode) 上運行,因此內存很緊.

This is about as complex as the XML files get. This will also run on a small VPS (Linode) so memory is tight.

我想知道的是:

1) 我應該使用 DOM 還是 SAX 解析器?由于每個 XML 都很小,因此 DOM 似乎更容易和更快.

1) Should I use a DOM or SAX parser? DOM seems easier and faster since each XML is small.

2) 關于所述解析器的簡單教程在哪里?(DOM 或 SAX)

2) Where is a simple tutorial on said parser? (DOM or SAX)

謝謝

編輯

盡管每個人都建議使用 SAX,但我嘗試了 DOM 路由.主要是因為我找到了一個更簡單"的 DOM 教程,并且我認為由于平均文件大小約為 3k - 4k,因此很容易將其保存在內存中.

I tried the DOM route even though everyone suggested SAX. Mainly because I found an "easier" tutorial for DOM and I thought that since the average file size was about 3k - 4k it would easily be able to hold that in memory.

但是,我編寫了一個遞歸例程來處理所有 200k 文件,它完成了大約 40% 的文件,然后 Java 內存不足.

However, I wrote a recursive routine to handle all 200k files and it gets about 40% of the way through them and then Java runs out of memory.

這是項目的一部分.https://gist.github.com/905550#file_xm_lparser.java

我現在應該放棄 DOM 而只使用 SAX 嗎?看起來如此小的文件 DOM 應該能夠處理它.

Should I ditch DOM now and just use SAX? Just seems like with such small files DOM should be able to handle it.

此外,速度足夠快".解析 2000 個 XML 文件大約需要 19 秒(在 Mongo 插入之前).

Also, the speed is "fast enough". It's taking about 19 seconds to parse 2000 XML files (before the Mongo insert).

謝謝

推薦答案

SAX 總是在速度上擊敗 DOM.但是由于您說 XML 文件很小,您可以繼續使用 DOM 解析器.您可以做的一件事是創建一個線程池并在其中執行數據庫操作.多線程更新將顯著提高性能.

SAX always beats DOM at speed. But since you say XML files are small you may proceed with DOM parser. One thing you can do to speedup is create a Thread-Pool and do the database operations in it. Multithreaded updates will significantly improve the performance.

  • 拉利斯

這篇關于如何在 Java 中高效地解析 200,000 個 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 示例中缺少)
主站蜘蛛池模板: 四虎永久影院 | 亚洲免费在线 | 日韩美香港a一级毛片免费 国产综合av | 蜜月va乱码一区二区三区 | 国内久久精品 | japan21xxxxhd美女 日本欧美国产在线 | 国精产品一区一区三区免费完 | 亚洲色图第一页 | 国产一级在线 | 成人免费视频网站在线观看 | 亚洲午夜av久久乱码 | 中文字幕av在线播放 | 欧美亚洲国产日韩 | 中文字幕亚洲精品 | 国产精品美女久久久久久免费 | 国产精品久久久久久久久免费 | 91免费在线 | 亚洲一区二区在线播放 | 日韩在线视频免费观看 | 精品久久久久久久久久 | 久久99深爱久久99精品 | 久久国产精品视频 | 日韩 欧美 综合 | www.午夜 | 欧美一二三 | 精品欧美一区二区三区久久久 | 黄色成人在线网站 | 中文字幕在线第一页 | 日韩快播电影网 | 九九久视频 | 超碰在线影院 | 在线免费观看毛片 | 亚洲一区二区久久 | 99国产在线| 成人在线小视频 | 日韩影院在线观看 | av在线一区二区 | 免费一级片 | 中文字幕成人 | 在线免费国产 | 亚洲一区二区久久久 |