簡體   English   中英

XML解析速度加快。 PHP

[英]XML parsing speed up. PHP

我在這里問一些可以使此過程更快的概念:

foreach($xml->results->concepts->concept as $value2){//This is the original game.
    $total_concepts++;
    foreach($xml1->results->concepts->concept as $value1){//This is similar game. 
        $total_similar_concepts++;
        if(strcmp($value2->name, $value1->name)==0){
            $comparisons++;
            break;
        }
    }
}

本質上,我正在將原始游戲的每個“概念”與每個“相似”游戲的每個“概念”進行比較。

該算法平均大約需要11.6秒才能完成。 我可以做些什么使它運行得更快嗎? 我在想,也許將其解析為xml並不是我能做的最好的事情。

XML解析不太可能是造成問題的原因。 如果它與XML有關,則可能是I / O,這意味着從磁盤獲取數據需要花費很長時間。

您正在執行的操作是將$ xml中的所有元素與$ xml2中的所有元素組合在一起,這是一個O(n ^ 2)復雜性問題。 您可以嘗試通過使用哈希圖來降低復雜度,這在php中很容易,因為您獲得了本質上是哈希圖的關聯數組:

foreach($xml->results->concepts->concept as $value2) {
  $total_concepts++;
  $map[(string)$value2->name] = true;
}
foreach($xml1->results->concepts->concept as $value1) {
  $total_similar_concepts++;
  if (isset($map[(string)$value1->name]))
    $comparisions++;
}

在最佳情況下,這使您的O(2n)復雜度大大優於以前的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM