Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / xml процессоры и их производительность. / 25 сообщений из 63, страница 1 из 3
18.01.2012, 13:25:45
    #37619842
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
Доброго времени суток.

Я как бы только начинаю изучать xml, и пробую всякие примеры с и-нета.
Столкнулся с такой проблемой:
Вот исходник ...
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
import java.io.File;
import java.io.StringWriter;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class Test {


	public static void main(String[] args) throws TransformerException {
		long start = System.currentTimeMillis();
		//System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");
		
		Source xmlSource = new StreamSource(new File("test.xml"));
        Source xslSource = new StreamSource(new File("test.xsl"));
        
        TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer = tFactory.newTransformer(xslSource);
        
        String str = null;
        StringWriter writer = new StringWriter();
        transformer.transform(xmlSource, new StreamResult("new.html"));
        //transformer.transform(xmlSource, new StreamResult(writer));
        //System.out.println(writer.toString().trim());
        long stop = System.currentTimeMillis();
        System.out.println((stop - start) / 1000.0+" ms.");
			
	}
}


Ничего особого. Задача трансформировать test.xml в new.html с используя test.xsl.
Тут все ясно.
test.xml файл не большой, и рун дал 0.226 ms. Я так понимаю, что в NetBeans-е, как и в Eclipse-е есть включенный xml процессор.

Затем я стал искать альтернативные xml процессоры. Тут самое интересное и началось.
Прочитал, что хвалят (по производительности и популярности) Saxon и Xalan.
Попробовал подключить Xalan , тест дал 0.563 ms.
А Saxon-HE дал васче 1.373 ms.

Это мало похоже на прирост производительности.

Прощу разъяснить всем сей трабл.
И, по возможности, киньте ссылку на правильную статью
с примерами в этом направлении.

За ранее спасибо.
...
Рейтинг: 0 / 0
18.01.2012, 13:37:27
    #37619890
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
Во-первых, замер не учитывает JIT компиляции. После "разогрева" кода, производительность станет намного выше.
Во-вторых, меряйте время работы только transformer.transform(). Скорость инициализации, ведь, не на столько важна. Объекты можно переиспользовать и кешировать.
...
Рейтинг: 0 / 0
18.01.2012, 13:40:19
    #37619901
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
Про Saxon пишут что там используется генерация байткода. Так что первый запуск будет очень долгим.
...
Рейтинг: 0 / 0
18.01.2012, 13:56:07
    #37619965
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
BlazkowiczВо-первых, замер не учитывает JIT компиляции. После "разогрева" кода, производительность станет намного выше.
Во-вторых, меряйте время работы только transformer.transform(). Скорость инициализации, ведь, не на столько важна. Объекты можно переиспользовать и кешировать.
А жизнь то налаживается ;-) У веровал, попробовал замерить только transformer.transform().
И Xalan дал 0.082 ms. - 0.096 ms.
А Saxon-HE дал 0.049 ms. - 0.055 ms.

Спасибо Blazkowicz . Saxon-HE рулит.
Жаль по его поводу мало понятноваримых примеров.
...
Рейтинг: 0 / 0
18.01.2012, 14:52:43
    #37620161
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
HunterNomadBlazkowiczВо-первых, замер не учитывает JIT компиляции. После "разогрева" кода, производительность станет намного выше.
Во-вторых, меряйте время работы только transformer.transform(). Скорость инициализации, ведь, не на столько важна. Объекты можно переиспользовать и кешировать.
А жизнь то налаживается ;-) У веровал, попробовал замерить только transformer.transform().
И Xalan дал 0.082 ms. - 0.096 ms.
А Saxon-HE дал 0.049 ms. - 0.055 ms.

Спасибо Blazkowicz . Saxon-HE рулит.
Жаль по его поводу мало понятноваримых примеров.

вот так. Взял и всё одним тестом выяснил. На одном файле.

Вероятно скорость будет очень сильно различаться на разных по структуре данных.

ХМЛ сам по себе это лишние расходы. Во многих случаях его можно заменить плоским текстом.
...
Рейтинг: 0 / 0
18.01.2012, 15:12:56
    #37620244
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
1024ХМЛ сам по себе это лишние расходы. Во многих случаях его можно заменить плоским текстом. XML уже является плоским текстом Хватит, остановись.
...
Рейтинг: 0 / 0
18.01.2012, 15:17:15
    #37620257
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
svenom1024ХМЛ сам по себе это лишние расходы. Во многих случаях его можно заменить плоским текстом. XML уже является плоским текстом Хватит, остановись.

и что. Парсер-то его интерпретирует как дерево (либо как поток тегов в случает SAX).
...
Рейтинг: 0 / 0
18.01.2012, 15:19:48
    #37620266
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
1024svenomпропущено...
XML уже является плоским текстом Хватит, остановись.
и что. Парсер-то его интерпретирует как дерево (либо как поток тегов в случает SAX).Ну да. Так для того XML и был придуман - структурированное представление информации. Приведите пример, как вы сможете представить некую информацию в структурированном виде, используя "плоский текст"(с).
...
Рейтинг: 0 / 0
18.01.2012, 15:21:43
    #37620273
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
ну например вот это обсуждение можно представить как плоский текст. Почтовые протоколы гоняют письма как плоский текст. И объёмы там не маленькие.
...
Рейтинг: 0 / 0
18.01.2012, 15:28:35
    #37620292
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
1024ну например вот это обсуждение можно представить как плоский текст. Почтовые протоколы гоняют письма как плоский текст. И объёмы там не маленькие.Круто, опишите пожалуйста ваше сообщение через плоский текст - кто отправил, заголовок, тело сообщения, кол-во сообщений.
...
Рейтинг: 0 / 0
18.01.2012, 15:30:04
    #37620296
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
svenom1024ну например вот это обсуждение можно представить как плоский текст. Почтовые протоколы гоняют письма как плоский текст. И объёмы там не маленькие.Круто, опишите пожалуйста ваше сообщение через плоский текст - кто отправил, заголовок, тело сообщения, кол-во сообщений.

если ты не понимаешь как написать сообщение текстом то тебе за учебники. Если ты хочешь посраться то тебе в ПТ.
...
Рейтинг: 0 / 0
18.01.2012, 15:45:22
    #37620350
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
1024ХМЛ сам по себе это лишние расходы. Во многих случаях его можно заменить плоским текстом.
Что есть "плоский" текст? Я так понимаю, в XML он рельефный или еще какой?
...
Рейтинг: 0 / 0
18.01.2012, 15:53:09
    #37620373
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
Leonidv1024ХМЛ сам по себе это лишние расходы. Во многих случаях его можно заменить плоским текстом.
Что есть "плоский" текст? Я так понимаю, в XML он рельефный или еще какой?Скорее всего, человек не понимает для чего вообще нужен XML.
...
Рейтинг: 0 / 0
18.01.2012, 16:02:58
    #37620401
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
svenomLeonidvпропущено...

Что есть "плоский" текст? Я так понимаю, в XML он рельефный или еще какой?Скорее всего, человек не понимает для чего вообще нужен XML.

а ты понимаешь?

Это просто стандарт. Все парсеры отвечающие стандарту могут прочитать данные из хмл (также отвечающего стандарту). Сгенерить на жабе и прочитать в пхп или ц-диез. И наоборот. Но про производительность в описании стандарта ничего нет.

Вот это и есть то для чего хмл придумали. Стандартизация это благо. Как контр пример можно посмотреть на формат вордовых документов - их можно открыть в опенофисе но что-то может не прочитаться. Это следствие на отсутствие стандарта.
...
Рейтинг: 0 / 0
18.01.2012, 16:11:58
    #37620428
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
1024svenomпропущено...
Скорее всего, человек не понимает для чего вообще нужен XML.

а ты понимаешь?

Это просто стандарт. Все парсеры отвечающие стандарту могут прочитать данные из хмл (также отвечающего стандарту). Сгенерить на жабе и прочитать в пхп или ц-диез. И наоборот. Но про производительность в описании стандарта ничего нет.

Вот это и есть то для чего хмл придумали. Стандартизация это благо. Как контр пример можно посмотреть на формат вордовых документов - их можно открыть в опенофисе но что-то может не прочитаться. Это следствие на отсутствие стандарта.
"Для чего" И "Что это " - это две больших разДници. Прошу прощение за каламбур.
...
Рейтинг: 0 / 0
18.01.2012, 16:21:10
    #37620444
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
HunterNomad1024пропущено...


а ты понимаешь?

Это просто стандарт. Все парсеры отвечающие стандарту могут прочитать данные из хмл (также отвечающего стандарту). Сгенерить на жабе и прочитать в пхп или ц-диез. И наоборот. Но про производительность в описании стандарта ничего нет.

Вот это и есть то для чего хмл придумали. Стандартизация это благо. Как контр пример можно посмотреть на формат вордовых документов - их можно открыть в опенофисе но что-то может не прочитаться. Это следствие на отсутствие стандарта.
"Для чего" И "Что это " - это две больших разДници. Прошу прощение за каламбур.

для чего нужна стандартизация явно описано - для обмена данными между разнородными системами. И пример приведён. По-моему в технических учебных заведениях даже предмет такой есть - Стандартизация.
...
Рейтинг: 0 / 0
18.01.2012, 16:26:50
    #37620465
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
Добрый день, svenom!

> Ну да. Так для того XML и был придуман - структурированное представление
> информации. Приведите пример, как вы сможете представить некую
> информацию в структурированном виде, используя "плоский текст"(с).

Код: sql
1.
2.
3.
4.
5.
6.
<elem>
  <field1>text1</field1>
</elem>
<elem>
  <field1>text2</field1>
</elem>



Заменить на
Код: sql
1.
2.
elem#0.field1#0=text1
elem#1.field1#0=text2



Вопрос надо ли...

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.01.2012, 16:32:16
    #37620477
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
авторЗаменить на

elem#0.field1#0=text1
elem#1.field1#0=text2


Тогда уж так)
автор[0][0]=text1
[1][0]=text1
...
Рейтинг: 0 / 0
18.01.2012, 16:38:24
    #37620494
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
развели на ровном месте про формат файла
Дерево <> плоский
...
Рейтинг: 0 / 0
18.01.2012, 16:45:21
    #37620523
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
И ежу понятно, то это
Код: xml
1.
2.
3.
4.
5.
6.
<elem>
  <field1>text1</field1>
</elem>
<elem>
  <field1>text2</field1>
</elem>



проще для понимания чем это

Код: xml
1.
2.
elem#0.field1#0=text1
elem#1.field1#0=text2
...
Рейтинг: 0 / 0
18.01.2012, 16:46:35
    #37620531
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
Добрый день, HunterNomad!

> И ежу понятно, то это
....
> проще для понимания чем это
....

Самое главное, что поймёт это любая (почти) программа. За что xml и любим.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.01.2012, 16:53:58
    #37620561
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
дак ещё проще в csv )
text1
text2
...
Рейтинг: 0 / 0
18.01.2012, 16:55:40
    #37620569
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
GKS_SamaraСамое главное, что поймёт это любая (почти) программа. За что xml и любим.
ради справедливости:
- в вебе НЕ любят за тормознутость (сабж), поэтому появилось куча АНТИформатов (ГИС\...)
...
Рейтинг: 0 / 0
18.01.2012, 16:56:28
    #37620572
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
правда у него трансформация, поэтому не к месту :))
...
Рейтинг: 0 / 0
18.01.2012, 17:00:08
    #37620577
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xml процессоры и их производительность.
GKS_SamaraДобрый день, HunterNomad!

> И ежу понятно, то это
....
> проще для понимания чем это
....

Самое главное, что поймёт это любая (почти) программа. За что xml и любим.

--
Алексей
JID: alxt@ya.ru

Отож.
Хотя можно и такому
Код: xml
1.
2.
elem#0.field1#0=text1
elem#1.field1#0=text2


любую (почти) программу понимать научить. Просто, это мое сугубо мнение, xml более понятен человеку. Зыркнул на текст и понятно кто под кем и кого за чем.
Жаль, что все же производительность из (xml примочек(XQuery, xmlProcessor ... )) в разы уступает sql. Понятно, что рост производительности железа рано или поздно их уравняет, но а пока и так сойдет.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / xml процессоры и их производительность. / 25 сообщений из 63, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]