代码之家  ›  专栏  ›  技术社区  ›  Adrian Godong

并行化批处理应用程序

  •  0
  • Adrian Godong  · 技术社区  · 16 年前

    我目前正在开发一个解析巨大XML文件的应用程序。

    对于每个文件,将有不同的进程,但所有这些进程都将被解析为一个对象模型。

    目前,从每个XML文件解析的对象将进入一个集合。

    查看此应用程序运行时的CPU图,很明显它只使用了部分CPU(一次100%使用一个内核),因此我认为并行运行它将有助于缩短运行时间。

    3 回复  |  直到 16 年前
        1
  •  0
  •   Fredrik Mörk    16 年前

    我建议你使用以下技术:构造一个等待处理的对象队列,并将它们从多个线程中移出:

    1. 创建一个XmlReader并开始逐节点读取文件,而不是EOF。
    2. 一旦遇到结束标记,就可以将其内容序列化为对象。

    对队列的访问需要同步,因为您将从多个线程中对对象进行入队和出队操作。

        2
  •  0
  •   Peter Lillevold Rene    16 年前

    我建议你考虑使用线程而不是并行编程。

    Threading Tutorial

        3
  •  0
  •   Darin Dimitrov    16 年前