Как эффективно анализировать большие XML-файлы на iOS для хранения контента в SQLite? - PullRequest
0 голосов
/ 19 сентября 2010

Я использую анализатор DOM libxml2 в своем приложении для iPhone, чтобы проанализировать XML-файл с сотнями тысяч строк.

Я храню содержимое, полученное в базе данных SQLite. Однако этот процесс занимает несколько минут, слишком много, чтобы быть удобным для пользователя . По моим ощущениям, большая часть времени теряется при записи данных в базу данных.

Сейчас я ищу любые подсказки о том, как сделать этот процесс более эффективным.

Ответы [ 3 ]

5 голосов
/ 19 сентября 2010

Попробуйте профилировать свой код с помощью инструментов!Проверьте, какие части вашего собственного кода занимают больше всего времени!Посмотрите, можете ли вы использовать другой подход (или опубликовать медленный код для предложений)!Если возможно, используйте NSOperation / NSOperationQueue , чтобы предоставить пользователю информацию о ходе выполнения!

!

3 голосов
/ 19 сентября 2010

Вы также можете посмотреть на этот вопрос: «Как улучшить производительность SQLite?»

2 голосов
/ 19 сентября 2010

Определенно согласен с JNozzi.Сначала профилируйте свой код, чтобы увидеть, где находятся самые узкие места производительности.Неясно, является ли разбор дерева DOM XML, обход дерева DOM XML или вставки SQLite причиной самой большой проблемы.

Если проблема заключается в разборе (или даже обходе) дерева DOM, вам следуетрассмотрите возможность переключения на один из более эффективных инструментов синтаксического анализа XML в libxml2: xmlTextReader (API-интерфейс XML pull) или SAX (API-интерфейс XML push).Я рекомендую xmlTextReader:

http://xmlsoft.org/xmlreader.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...