Верблюд производительность для большого количества записей - PullRequest
1 голос
/ 02 октября 2019

Я использую верблюжий рестлет, и он отвечает примерно 500К записями. Я получаю проблемы с производительностью для передачи больших данных, как это. Процесс обмена занимает около 300-400 мс, в то время как если я проверяю время в браузере, оно продолжает париться, и если я измерил время между 15-18 минутами.

Не могли бы вы помочь мне понять, в чем может быть проблема? ниже приведен json

{
   "BC":[
      {
         "internalCode":"B1C",
         "dgap":0.737940735389102,
         "gset":0.40132512265670084,
         "lastPrice":0.6980345629460734,
         "side":null,
         "insttype":"CBBC",
         "entitlementratio":0.506859210513693,
         "delta":0.1723159666242896,
         "logprice":false,
         "time":"02-10-2019 03:38:42.122"
      }
   ]
}

маршрут определен таким образом

<get uri="/getAnalyticsReport?synchronous=true&amp;streamRepresentation=true"  bindingMode="off" >
                <to uri="direct:analyticsReport" />
</get>

Это direct:analyticsReport Я измерял, и это занимает около 300 мс

Я пытался получить стектрассировка, и это выглядит как трассировка стека

at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    at sun.nio.ch.IOUtil.write(IOUtil.java:65)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
    at sun.net.httpserver.Request$WriteStream.write(Request.java:391)
    at sun.net.httpserver.FixedLengthOutputStream.write(FixedLengthOutputStream.java:78)
    at sun.net.httpserver.PlaceholderOutputStream.write(ExchangeImpl.java:444)
    at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
    at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:135)
    at java.io.OutputStreamWriter.write(OutputStreamWriter.java:220)
    at java.io.Writer.write(Writer.java:157)
    at org.restlet.representation.StringRepresentation.write(StringRepresentation.java:237)
    at org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:76)
    at org.restlet.engine.adapter.ServerCall.writeResponseBody(ServerCall.java:519)
    at org.restlet.engine.adapter.ServerCall.sendResponse(ServerCall.java:463)
    at org.restlet.engine.adapter.ServerAdapter.commit(ServerAdapter.java:196)
    at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:153)
    at org.restlet.engine.connector.HttpServerHelper$1.handle(HttpServerHelper.java:73)
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
    at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
    at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)
    at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
    at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)
    at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(ServerImpl.java:158)
    at sun.net.httpserver.ServerImpl$Dispatcher.handle(ServerImpl.java:431)
    at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:396)
    at java.lang.Thread.run(Thread.java:748)
...