在PHP中使用XMLReader时CPU使用率很高

时间:2017-05-17 07:46:19

标签: php xml-parsing large-files xmlreader

我有一个巨大的xml文件(23 GB)。虽然使用XMLReader进行解析,但只需要很少的内存,但 CPU使用率将达到100%。

我在AWS上使用m3 xlarge机器。会是什么原因?

以下是用于xml解析的代码。

$reader = new XMLReader();
$doc = new DOMDocument;
$items = array();
$xml_url = "/home/test/apparel_mp.xml";
try {
    if (!$reader->open($xml_url)) {
        print "Error to open XML: $xml_url\n";
    } else {
        while ($reader->read()) {
            if ($reader->name == "item_data") {
                $exNode = $reader->expand();
                $node = @simplexml_import_dom($doc->importNode($exNode, true));
                if (!empty($node)) {
                    $item_product = array();
                    $item_product['source_product_id'] = (string) $node->item_basic_data->item_sku;
                    //$item_product['item_brand'] = (string) $node->item_basic_data->item_brand;
                    $item_product['source_title'] = $item_product['title'] = (string) $node->item_basic_data->item_name;
                    $items[] = $item_product;
                }
            }
        }
        $reader->close();
    }
} catch (Exception $e) {

}

是因为simplexml_import_dom函数吗?

0 个答案:

没有答案