2011-12-14 3 views
0

В моем проекте мне нужно добавить новые данные в xml, поэтому я делаю это как показано ниже: Вопрос заключается в том, что функция LoadFile() так медленно, xml-файл большой, а high-cpu, SaveFile() имеют одинаковую проблему. Итак, как мне ускорить работу в моем проекте. Спасибо Вам помочь :)Как ускорить загрузку более крупного файла, используя Loadfile() в Tinyxml

 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++?

 Смежные вопросы

  • Нет связанных вопросов^_^