Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Парсинг локально подключаемого xml файла объемом более 17 мб (https://javascript.ru/forum/misc/21384-parsing-lokalno-podklyuchaemogo-xml-fajjla-obemom-bolee-17-mb.html)

Hag1989 07.09.2011 19:15

Цитата:

Сравнение:
http://jsperf.com/caching-array-length/12
Спасибо ваый и Snipe ! В моем случае цикл c инкрементом (Counting down) оказался самым производительным; но при открытии из CHM он оказался быстрее чем с итерацией только на 25% :( , а на jsperf.com производительность движка IE6 была выше чем Without caching почти в 4 раза (проверял в IEtester), несмотря на то, что во время работы скрипта Counting down браузер 5 раз ругался алертом "A script on this page is causing Internet Explorer to run slowly"

Hag1989 07.09.2011 19:17

Цитата:

А обязательно использовать XML ???
Может получится хранить инфу в json ????
К сожалению работа привязана к XML, кот импортируется из EXCEL.

Snipe 07.09.2011 19:23

Можно в промежутке XSL трансформацию сделать в JSON )

Hag1989 07.09.2011 19:26

Конечно, если бы написать VBA надстройку к EXCEL, которая импортировала бы готовый файл в формате json ... Но программист, написавший форму для заполнения БД под excel, пока, отказался это делать. Если я смогу четко описать структуру БД в json, то может он и возьмется за работу.

Snipe 07.09.2011 19:27

Есть еще вариант, запускать преобразования пачками с таймаутами. Тогда браузер не замрет на 5 секунд, но и время разбора будет большим, ну и данные будут доступны не сразу, а постепенно...

Hag1989 07.09.2011 19:27

Цитата:

Можно в промежутке XSL трансформацию сделать в JSON )
К сожалению, я, пока, не сумею такое изобразить.

popov654 07.09.2011 20:20

Цитата:

Сообщение от ваый (Сообщение 125370)

Ппц))
На что я обратил для себя внимание:
  1. Opera при всей её замечательности плохо справляется со случаем переменной "снаружи" (бордовая полоска) - результат почти вдвое медленнее наилучшего
  2. Забавно, но без кэширования FF5 работал быстрее FF6 :blink:
  3. Chrome ну просто ппц какой быстрый! А как это так?.. :-?

У меня в Opera 11 результаты подтвердили статистику:
for in
252
±1.10%
99% slower

for check index
2,664
±0.25%
89% slower

using cached length outside test
13,012
±0.29%
44% slower

- самые медленные способы организации цикла в Opera 11

Hag1989 07.09.2011 20:53

Сравнение производительности циклов в разных браузерах это конечно хорошо, но как лучше переписать функции в моём примере для производительной работы в IE6. Проверял убирая функцию вывода списка, выяснил, что тормоза, в первую очередь не в data.length, а в arr[i][j] = xmlCols[j].firstChild.data. Исправьте меня если не прав.

Hag1989 07.09.2011 21:17

Цитата:

Сообщение от Snipe (Сообщение 125417)
Есть еще вариант, запускать преобразования пачками с таймаутами. Тогда браузер не замрет на 5 секунд, но и время разбора будет большим, ну и данные будут доступны не сразу, а постепенно...

А если запускать не с таймаутами, а по событиям, например при onclick на сылку1 будет парситься и выводиться на экран только часть массива? буду крайне благодарен если пришлете пример подобной реализации.

Snipe 08.09.2011 00:08

Цитата:

Сообщение от Hag1989 (Сообщение 125436)
А если запускать не с таймаутами, а по событиям, например при onclick на сылку1 будет парситься и выводиться на экран только часть массива? буду крайне благодарен если пришлете пример подобной реализации.

Эм, так а список ссылок как будут строится?


Часовой пояс GMT +3, время: 04:04.