protven: Тогда я правильно понял. Мне кажется, что для такого рода задач глубоких знаний в C# не требуется. Больше нужно понимать что делает браузер. Я с помощью CefSharp делал инжект скриптов на странице и крутил ею как хотел. Штука прикольная.
Взгляд Смерти: Ну а вы представьте, что "это" разрешили делать? Это ж как станет просто читать все файлы пользователя и отправлять их злоумышленникам! )))
Сейчас заработало намного шустрее чем раньше. Сказывается session_write_close() и добавление памяти на сервер. Поскольку повышение нагрузки на сервер не планируется, то такое решение устроит. Спасибо за совет и отдельное спасибо за ab. Не знал про неё.
1. ab не получится прогнать, т.к. сервер, куда делаются перезапросы требует аутентификации kerberos (забыл предупредить, что у меня включено делегирование).
4. Про блокировки сессий почитал. Отключил session_write_close(). Стало видно, что некоторые запросы стали ставиться в параллель, но в количестве 2-4 шт. Я сейчас тестирую всего лишь под 16 пользователями по 9 запроов с каждого. Но всё равно за 5 минут не успевают пройти все запросы.
Ещё момент - вспомогательный сервер работает под ssl - вполне себе приличная нагрузка на проц. Да и мой тоже под ssl работает. Попробую покопать в этом направлении тоже. Смотрел нагрузку - все ядра забиваются под 100%. Буду копать тут.
helycopternicht: Дам вам небольшую вводную. Надеюсь, что вы знакомы с JSON? По сути абстракций они очень похожи, только есть нюансы, которые их различают - в json нельзя задать атрибуты как в XML, в JSON нет встроенного метода, чтобы определить родителя у потомка, а в XML есть.
Очень важно понимать зачем нужно XSLT. С помощью XSLT можно сделать преобразование XML->другой формат (не любой, иногда только с потерей данных)->(CSV, XML, text и др).
Реализация XSLT бывает ущербной. XSLT это своеобразный JavaScript для XML. Например, в браузерах XSLT очень слабый, даже replace текста выглядит настолько чудовищно, что не верится, но если делать XSLT преобразования в Java, то там XSLT можно расширить своими функциями, которых изначально нет в XSLT. Т.е. вы можете зарегистрировать в XSLT функцию Java и вызывать её, например, для того же replace текста.
Так что вы удачно стали интересоваться XML в контексте Java. В этом случае возможностей больше.
Никита Полевой: Я сейчас перерыл профайлер и не нашёл того, что обещал, но КЛЯНУСЬ я это видел! ))) Но год назад. Может они уже исправили эту ситуацию? потому что у меня из-за этого были дикие утечки памяти! Я потом стал применять не суммирование строк, а контакенацию строк в массиве. ["str1", "str2","str3", ..., "strN"].concat()
Если найду инфу - обязательно отпишусь!
Nurshat: Да. Вам нужно почитать, как разбирается xml. В XML нет просто текста. Есть набор "текстовых" потомков, даже если они не обрамлены тегами, но перемешаны с обычными тегами. Т.е. в вашем случае в массиве children будут div, text, div, text, img, text. HTML частный случай XML, поэтому надо пользоваться методами разбора XML. plaintext - это просто "выдирание" только текста из всех потомков, фактически просто удаление всего, что находится в угловых скобках. Остальное вам и предъявляется как plaintext.