2011-12-14 10 views
0

私のプロジェクトでは、xmlに新しいデータを追加する必要があるので、私は以下のようにします: 質問はLoadFile() xmlファイルが大きく、高CPUの場合、SaveFile()にも同じ問題があります。だから、私はどのように私のプロジェクトでスピードアップする必要があります。 おかげで、あなたは:)TinyxmlでLoadfile()を使用すると高速化する方法

 TiXmlDocument doc(m_filePath.c_str()); 
    (void)doc.LoadFile(); //here is slowly 
    if (doc.Error() && (doc.ErrorId()==TiXmlBase::TIXML_ERROR_OPENING_FILE)) 
    { 
     ATS_LOG(ERROR, "Can not open the file:%s", m_filePath.c_str()); 
     result = false; 
    } 
    else 
    { 
     const TiXmlHandle docH(&doc); 
     TiXmlElement* const element = docH.FirstChildElement("HistoryMsgs").Element(); 
     TiXmlNode* const pNode=element->ToElement(); 
     if (pNode!=NULL) 
     { 
          //do something that insert new node; 
      (void)doc.SaveFile(m_filePath.c_str());//here is slowly too 
     } 
    } 

答えて

0

TinyXMLはかなりのパフォーマンスの問題を持っているのに役立ちます。 RapidXMLおよびPugiXMLがより好ましい。あなたのコードを新しいパーサーに移植するのがどれくらい簡単かはわかりませんが、TinyXMLで一度だけパフォーマンスの問題があり、その後PugiXMLに切り替えました。 C++パーサーに関するディスカッションは、 What is the best open XML parser for C++?

関連する問題