我正在使用Java DOM解析器來解析XML文件。性能對我很重要,我需要編寫最優化的代碼。我注意到要處理的XML有很多嵌套的標籤(它可以達到5級深度),我必須檢索所有級別的信息。循環複雜度最低的XML
我實現的虛擬解決方案是使用嵌套循環,每個循環都檢索節點的子節點並將其傳遞給下一個循環。
當代碼複雜度達到O(n^5)時,這對於性能和複雜度是非常糟糕的做法。請找到它如何在下面的代碼級別。
我相信在這種情況下分治算法可能會起作用。
做任何你有任何建議有一個更優化的代碼,以獲得更好的性能?
對(INT溫度= 0;溫度< contractDetails.getLength();溫度++){ 節點詳細= contractDetails.item(溫度); System.out.println(detail.getNodeName()); NodeList detail2 = detail.getChildNodes();
for (int temp2 = 0; temp < detail2.getLength(); temp2++){ ......... for (int temp3 = 0; temp < detail3.getLength(); temp3++){ ............... } } }
邁克爾,非常感謝您的意見。我會嘗試使用XOM。你相信有這樣的嵌套循環不會影響性能。你知道有更好的做法有相同的輸出嗎? – mowienay
那麼,我會寫在XSLT或XQuery中,只考慮其他方法,如果性能不符合要求。一般來說,如果性能不夠快,那麼改進它的最便宜的方法就是升級硬件 - 一臺新服務器的花費大約是程序員時間的一天。 –