0

我正在使用 Spring social 通过 Facebook 或 LinkedIn 获取信息。它工作得很好,我得到了我想要的,但我遇到了一个问题:它超级慢。

例如,使用linkedin 访问我的连接的完整个人资料每个联系人大约需要一秒钟。facebook也可以这样说。

那么,您知道这种缓慢对于 Spring social 是否正常,或者是否有办法解决这一切?

4

1 回答 1

5

我承认我没有对 Spring Social 的 API 绑定进行很多彻底的性能测试(要涵盖的内容太多了……涵盖所有内容将是一项艰巨的任务)。但是,我刚刚对 FriendOperations.getFriendProfiles() 做了一些非常基本的速度测试,请求我的 Facebook 好友列表(160 个好友)。我发现了以下内容:

  • 平均而言,该请求需要 2.6 秒才能完成。我确实有一次尝试花费了 7 秒以上,但我把它作为网络故障扔掉了……其他的都在 2.6 秒左右。
  • 对于同样的请求,Spring Social 通过 RestTemplate 进行网络调用以获取数据的平均时间约为 2.4 秒。
  • Spring Social 花费大约 0.2 秒(平均)来反序列化它接收到的数据。

所以是的,2.6 秒不太理想,但其中 2.4 秒用于网络调用,超出了 Spring Social 的控制。我什至将 Spring 排除在外,并通过 curl 命令行工具运行相同的查询,发现调用(平均)耗时 3.0 秒。(这并不意味着 Spring 比 curl 更快......只是我的不科学样本更幸运一些,而且可能太小而无法说出任何明确的结论。)

而且,作为另一个数据点,我通过 Facebook 的 Graph API Explorer 执行了相同的查询,它(平均)在大约 2.7 秒内返回。

每个网络都不同,因此您的里程可能会有所不同。

简而言之,Spring Social 在性能方面可能还有改进的空间,但在获取用户朋友的完整个人资料的情况下,它会很慢,因为通过网络获取这么多数据很慢。

最后,虽然我没有对 Spring Social LinkedIn 进行测试,但我想它的性能大致相同,因为您将通过网络请求大约相同数量的数据。

于 2013-06-24T20:04:36.057 回答