我有一个巨大的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函数吗?