对象序列化为字节与杰克逊序列化从对象到 JSON?



我的问题可能听起来很基本,但我对杰克逊的writeValueAsString(String(也称为序列化,Java对象到字节流的转换也称为序列化。

谁能帮我理解;他们俩有什么不同?

我问这个问题的原因是,我陷入了一个调用 REST 服务的场景。REST 在 10 秒内使用 JSON 进行响应。但是,如果我在服务器端记录writeValueAsString(String(的时间,则几乎不需要一秒钟。

更新1:这就是我观察到的

  1. 上次登录调用的 REST 服务(返回集合(打印时间为 -->9:10:10 UTC。而且,数据同时开始在我的机器上流式传输 Git bash,因为我使用 curl 调用服务。

  2. 10 秒后,我的 Servlet 过滤器(拦截对 REST api uri 的请求(在 --> 9:10:20 UTC 打印出来,同时数据流在 Git bash(下载近 35Mb(停止。那么,这种行为的原因可能是什么?

如果杰克逊在序列化仍在打开时同时开始通过网络发送字节?

是杰克逊序列化速度慢还是网络带宽低?

请注意,我尝试仅使用 writeValueAsString(..( 运行序列化和反序列化/readValue(..( 操作,无需通过 junit 使用同一组数据进行任何网络调用,它们在一秒钟内执行。

谢谢

10 秒的服务器响应时间不仅仅是序列化时间,它还包括:

  • 请求通过网络到达 REST 服务服务器的总时间
  • REST 服务应用中的内部处理
  • 通过网络到达应用程序的响应
  • (此外,其他各个层所花费的时间,但为了简单起见,不包括它们(。

对于序列化 - 在此处添加来自@Lino的评论:

在计算中,序列化(或

序列化(是将数据结构或对象状态转换为可以存储(例如,在文件或内存缓冲区中(或传输(例如,通过网络连接链接(并在以后(可能在不同的计算机环境中(重建的格式的过程

来源 : 维基百科

最新更新