0

我正在编写一个服务器客户端应用程序,最好的性能是必须的;我使用 RMI 进行服务器-客户端通信,服务器使用 mySQL 数据库。

现在在客户端我有一个方法叫做

    getLinks()     

它在服务器上调用相同的方法,问题是该方法返回大约 700Mb 的数据,这需要一些时间来获取,并且需要更多时间来分析。

然后我为每个链接设置一些值:

for (Link l : myService.getLinks()) l.setSelected(false);

我现在想到的只是首先获取链接 ID(因为这将是一个较小的数据),然后使用异步方法按 ID 获取每个链接(每个链接都需要一个服务调用);然后设置链接值。

这是最好的方法吗,是否有另一种方法来逐个获取 RMI 数据(一个方法调用和多个返回)?

C# 中有类似(收益回报)的东西吗?

4

2 回答 2

0

您还可以制作一个分页方法,它接收初始ID(如果ID不是连续的,则接收位置)和长度,这样您就不会发送所有ID两次

于 2013-09-19T14:36:54.870 回答
0

链接对象是远程对象吗?如果不是,我真的看不出代码的意义,因为它只在客户端对象中本地设置一些东西,这些东西会立即被丢弃。

假设它们是远程对象,最好将整个更新发送到服务器并告诉它更新整个集合,例如 setLinksSelected(boolean),服务器在其中进行迭代。

但我也会警惕通过 RMI 更新甚至传输 700Mb 的数据,无论您采用哪种方式。这是很多数据。

于 2013-09-19T16:17:35.253 回答