在PHP中使用XMLReader时CPU使用率很高
我有一个巨大的xml文件(23GB)。使用XMLReader进行解析时,只需要很少的内存,但是CPU使用率将达到100%。 我在AWS上使用m3 xlarge机器。原因是什么 下面是用于xml解析的代码在PHP中使用XMLReader时CPU使用率很高,php,xml-parsing,large-files,xmlreader,Php,Xml Parsing,Large Files,Xmlreader,我有一个巨大的xml文件(23GB)。使用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_ur
$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\u import\u dom函数吗?如果您有这样一个简单的问题,您可能是唯一能够轻松回答的人。删除
simplexml\u import\u dom()
函数,再次运行代码,您将得到答案。在删除或添加其他位的情况下再次测试。我们不能为您的客户这样做。另请参阅:并尝试找出我们无法验证您的问题的原因。通过在while循环中添加一秒延迟,问题得以解决。如果您有这样一个简单的问题,您可能是唯一能够轻松回答的人。删除simplexml\u import\u dom()
函数,再次运行代码,您将得到答案。在删除或添加其他位的情况下再次测试。我们不能为您的客户这样做。另请参阅:并尝试找出我们无法验证您的问题的原因。通过在while循环中添加一秒延迟,问题得以解决。