Я думаю, вы должны увидеть, как извлекаются данные (SSE или WebSocket) и просто попытаться подписаться на эту услугу.Если это невозможно, попробуйте более эффективный анализатор XML.Я рекомендую https://vtd -xml.sourceforge.io / это может быть в ~ 10 раз быстрее, чем DOM-парсер, который поставляется с JDK.
Также будьте осторожны с BufferedReader.readLine()
, так как естьскрытая стоимость выделения (это довольно сложный процесс, так как вам нужно думать о пропускной способности памяти процессора, пропусках кэша L1 и т. д.) для строк, которые вам на самом деле не нужны.
Пример использования библиотеки, о которой я говорил:
byte[] pageInBytes = readAllBytesFromTheURL();
VTDGen vg = new VTDGen();
vg.setDoc(pageInBytes);
vg.parse(false);
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
//Jump to the section that we want to process
ap.selectXPath("/html/body/div");
String fileId = vn.toString(vu.getElementFragment());