Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML или CSV ??? Что лучше??? 
V
    Опции темы
Cross
Дата 2.4.2008, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


информатик-аналитик
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 2.6.2006
Где: Москва

Репутация: нет
Всего: 1



Подскажите если кто знает - что лучше использовать для обмена данными между приложением и БД ???
Я использую XML - но на разбор данных уходит очень много времени и оперативной памяти. 
Приложение в целом из-за этого работает очень медленно.
Может лучше использовать CSV ? 
Будет ли от этого выигрыш в производительности?
Есть ли то, что может XML и не может CSV ?
Вобщем поделитесь опытом, если кто сталкивался с проблемой низкой производительности XML
PM MAIL ICQ Skype MSN   Вверх
Данкинг
Дата 3.4.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



А какая тут связь? XML - это набор данных, записанный на своём языке, а CSV - обычный текстовый файл с разделителями. Разумеется, парсить CSV проще, но у XML и возможностей больше.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
mishaSL
Дата 3.4.2008, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 1
Всего: 54



Cross, что лучше использовать зависит от задачи. У XML больше возможностей, CSV проще.
Расскажите какими данными вы обмениваетесь, и какова их структура. Может в вас в самой программе по обработке XML есть ошибки?


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Cross
Дата 7.4.2008, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


информатик-аналитик
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 2.6.2006
Где: Москва

Репутация: нет
Всего: 1



На обработку поступают данные из базы Oracle в формате XML:

Код

<?xml version="1.0" encoding="windows-1251" standalone="no"?>
<root>
    <experiment>
        <id>123</id>
        <compound>
            <density>2200</density>
            <components>
                <component>
                    <component-part>
                        <particle-type>
                            <id>28</id>
                            <name>Na</name>
                            <feature>1</feature>
                            <basicity>1</basicity>
                            <charge>1</charge>
                            <radius>0.97e-10</radius>
                            <mass>0.382e-25</mass>
                        </particle-type>
                        <amount>1</amount>
                    </component-part>
                    <component-part>
                        <particle-type>
                            <id>34</id>
                            <name>Cl</name>
                            <feature>0</feature>
                            <basicity>1</basicity>
                            <charge>-1</charge>
                            <radius>1.81e-10</radius>
                            <mass>0.589e-25</mass>
                        </particle-type>
                        <amount>1</amount>
                    </component-part>
                    <amount>1</amount>
                </component>
            </components>
        </compound>
        <md-algorithm>
            <number-of-particles>64</number-of-particles>
            <time-step>0.5e-15</time-step>
            <!-- Начальная температура процесса моделрования-->
            <initial-temperature>1000</initial-temperature>
            <!-- Конечная  температура процесса моделрования-->
            <end-temperature>1000</end-temperature>
            <!-- Кол-во точек моделирования-->
            <temperature-points-number>1</temperature-points-number>
            <!-- Фаза стабилизации кол-во шагов-->
            <stabilization-phase-timeout>25</stabilization-phase-timeout>
            <!-- Фаза стабилизации допустимая флуктуация-->
            <fluctuation>50</fluctuation>
            <!-- Кол-во микро шагов фазы термостабилизации-->
            <number-of-micro-steps>100</number-of-micro-steps>
            <!-- Кол-во макро шагов фазы термостабилизации-->
            <number-of-macro-steps>10</number-of-macro-steps>
            <!-- Первоначальная раскладка-->
            <initial-condition-algorithm>fcl</initial-condition-algorithm>
            <interaction-algorithm>ewald</interaction-algorithm>
            <hot-phase-temperature>25000</hot-phase-temperature>
        </md-algorithm>
    </experiment>
</root>


Эти данные поступают на обработку программе на С++. В этой программе производит парсинг,
затем обрабатываются и на основе новых данных формируется новый XML-файл.

Добавлено через 5 минут и 41 секунду
Не знаю, как там происходит парсинг. Не я писала эту программу. Но работает очень медленно.
Я не думаю, что дело в ошибках обработки. 
Да, в XML больше возможностей, и использование XML довольно удобно!
Но эти возможности, как мне кажется делают обработку медленнее.
Т.е. если я для собственного приложения напишу даже обычный текстовый файл, 
в который буду скидывать данные из базы и напишу например на Java его обработку, то 
не это же будет работать быстрее??? Или я не права?
Т.е. вопрос в том, использовать ли XML как удобное, но медленное, или
использовать собственные форматы данных, как более сложные в разработке, но и
более производительные?
Что вы можете сказать по этому поводу???
PM MAIL ICQ Skype MSN   Вверх
LSD
Дата 7.4.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15717
Регистрация: 24.3.2004
Где: Dublin

Репутация: 8
Всего: 537



Если представленный XML, это типичный документ (по размеру и сложности), который приходится парсить, то непосредсвенно парсинг займет пару миллисекунд.
Код

public class Test
{
  public static final String XML = "<?xml version=\"1.0\" encoding=\"windows-1251\" standalone=\"no\"?>\n" +
                                   "<root>\n" +
                                   "    <experiment>\n" +
                                   "        <id>123</id>\n" +
                                   "        <compound>\n" +
                                   "            <density>2200</density>\n" +
                                   "            <components>\n" +
                                   "                <component>\n" +
                                   "                    <component-part>\n" +
                                   "                        <particle-type>\n" +
                                   "                            <id>28</id>\n" +
                                   "                            <name>Na</name>\n" +
                                   "                            <feature>1</feature>\n" +
                                   "                            <basicity>1</basicity>\n" +
                                   "                            <charge>1</charge>\n" +
                                   "                            <radius>0.97e-10</radius>\n" +
                                   "                            <mass>0.382e-25</mass>\n" +
                                   "                        </particle-type>\n" +
                                   "                        <amount>1</amount>\n" +
                                   "                    </component-part>\n" +
                                   "                    <component-part>\n" +
                                   "                        <particle-type>\n" +
                                   "                            <id>34</id>\n" +
                                   "                            <name>Cl</name>\n" +
                                   "                            <feature>0</feature>\n" +
                                   "                            <basicity>1</basicity>\n" +
                                   "                            <charge>-1</charge>\n" +
                                   "                            <radius>1.81e-10</radius>\n" +
                                   "                            <mass>0.589e-25</mass>\n" +
                                   "                        </particle-type>\n" +
                                   "                        <amount>1</amount>\n" +
                                   "                    </component-part>\n" +
                                   "                    <amount>1</amount>\n" +
                                   "                </component>\n" +
                                   "            </components>\n" +
                                   "        </compound>\n" +
                                   "        <md-algorithm>\n" +
                                   "            <number-of-particles>64</number-of-particles>\n" +
                                   "            <time-step>0.5e-15</time-step>\n" +
                                   "            <!-- Начальная температура процесса моделрования-->\n" +
                                   "            <initial-temperature>1000</initial-temperature>\n" +
                                   "            <!-- Конечная  температура процесса моделрования-->\n" +
                                   "            <end-temperature>1000</end-temperature>\n" +
                                   "            <!-- Кол-во точек моделирования-->\n" +
                                   "            <temperature-points-number>1</temperature-points-number>\n" +
                                   "            <!-- Фаза стабилизации кол-во шагов-->\n" +
                                   "            <stabilization-phase-timeout>25</stabilization-phase-timeout>\n" +
                                   "            <!-- Фаза стабилизации допустимая флуктуация-->\n" +
                                   "            <fluctuation>50</fluctuation>\n" +
                                   "            <!-- Кол-во микро шагов фазы термостабилизации-->\n" +
                                   "            <number-of-micro-steps>100</number-of-micro-steps>\n" +
                                   "            <!-- Кол-во макро шагов фазы термостабилизации-->\n" +
                                   "            <number-of-macro-steps>10</number-of-macro-steps>\n" +
                                   "            <!-- Первоначальная раскладка-->\n" +
                                   "            <initial-condition-algorithm>fcl</initial-condition-algorithm>\n" +
                                   "            <interaction-algorithm>ewald</interaction-algorithm>\n" +
                                   "            <hot-phase-temperature>25000</hot-phase-temperature>\n" +
                                   "        </md-algorithm>\n" +
                                   "    </experiment>\n" +
                                   "</root>";
  private static final int ITER_COUNT = 100 * 1000;

  public static void main(String[] args) throws Exception
  {
    DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

    long time = System.currentTimeMillis();
    for(int i = 0; i < ITER_COUNT; i++)
    {
      Document document = documentBuilder.parse(new InputSource(new StringReader(XML)));
    }
    time = System.currentTimeMillis() - time;

    System.out.println(((double) time) / ITER_COUNT);
  }
}

У меня среднее время получилось 0.44 миллисекунды.

Так что если эти ребята не используют свой собственный велосипед для парсинга XML, то основные задержки идут от обработки XML.

К тому же стандартных парсеров CSV в Java нет, и не факт что ты сможешь их так же хорошо оптимизировать как уже оптимизированны парсеры XML.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Cross
Дата 7.4.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


информатик-аналитик
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 2.6.2006
Где: Москва

Репутация: нет
Всего: 1



Спасибо вам большое, LSD!!!

А что вы скажете по поводу вот этой статейки: http://extrapro.ru/udxml.html

Вы не согласны с автором по-поводу того, что лучше использовать собственные форматы данных???
И если нет, то пожалуйста напишите почему!!!

Заранее благодарю!!! 
PM MAIL ICQ Skype MSN   Вверх
LSD
Дата 8.4.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15717
Регистрация: 24.3.2004
Где: Dublin

Репутация: 8
Всего: 537



Цитата(Cross @  7.4.2008,  15:53 Найти цитируемый пост)
А что вы скажете по поводу вот этой статейки: http://extrapro.ru/udxml.html

Всю не осилил, прочитал первую часть, дальше просмотрел по диагонали. Сплошная демагогия, про то как менеджеры заставляют разработчиков использовать XML, какая-то непонятная аналогия с комунизмом, и прочий бред. По моему у автора ничего не понимает в XML. Он например пишет
Цитата
Т.е. я не думаю, что все древовидные структуры данных программистам нужно форматировать в виде XML в целях удобства редактирования их в текстовом редакторе.

А в каком виде их хранить, он не говорит. Или:
Цитата
Еще XML не удобен для использования в программах потому, что большие XML файлы, хранят много лишней информации и долго конвертируются во внутренние объекты программы и обратно (парсятся и сохраняются).

Про исбыточность информации согласен, хотя тут опять же смотря с чем сравинивать. А вот заявлени насчет долгого парсинга и сохранения, абсолютно голословно, где результаты тестов. Или хотя бы упоминание о том с каким форматом производится сравненение. Опят же заявление о неудобстве редактирования, на чем основано? Я например спокойно пишу скрипты ANT, и редактирую файлы конфигурации log4j, которые представленны в XML, и не испытываю при этом неудобств.
Вообщем: статься на 99% состоящая из воды и эмоций, куча каких-то левых аналогий, и ни одного нормального аргумента. Автор не понимает, что XML это не совсем формат хранения/передачи данных, а что-то типа рекомендаций по организации этого формата.


Цитата(Cross @  7.4.2008,  15:53 Найти цитируемый пост)
Вы не согласны с автором по-поводу того, что лучше использовать собственные форматы данных???

Стандартная библиотека в 99% случаев лучше, чем самописный велосипед (зайди в религиозные войны, так как раз был топик на эту тему). Особенно в таком, деле как внешнее хранение данных. Т.к. возможно с этими данными придется работать не только тебе, но и сторонним разработчикам. А им будет проще работать со стандартными вещами, чем писать свой велосипед.

Простой пример: пусть есть пара систем которые получают/отсылают данные в формате XML и своем собсвтенном бинарном формате. В первом случае мы можем эти данные легко записать в лог, а затем при ошибке просмотреть их. Во втором случае нам придется как-то форматировать данные в текстовый вид перед записью в лог иначе мы ничего не прочтем.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Cross
Дата 9.4.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


информатик-аналитик
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 2.6.2006
Где: Москва

Репутация: нет
Всего: 1



Спасибо большое за ваши комментарии!!!

Это сообщение отредактировал(а) Cross - 23.4.2008, 11:04
PM MAIL ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1280 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.