gpt4 book ai didi

java - 使用带有 Swing 组件的 RMI 代理时性能不佳

转载 作者:行者123 更新时间:2023-11-30 09:55:21 24 4
gpt4 key购买 nike

当我将 RMI 代理引用添加到 Java Swing JList 组件时,我遇到了巨大的性能问题。

我正在使用 RMI 从服务器检索用户 Profile 的列表。检索本身只需要一秒钟左右的时间,所以在这种情况下这是可以接受的。但是,当我尝试在自定义 ListModelCellRenderer 的帮助下将这些代理添加到 JList 时,需要 30-添加大约 180 个对象需要 60 秒。由于它是用户名列表,因此最好按字母顺序显示它们。

最大的性能影响是当我对添加到 ListModel 的元素进行排序时。由于列表将始终排序,我选择使用内置的 Collections.binarySearch() 来找到下一个要添加的元素的正确位置,比较器使用定义的两个方法通过 Profile 接口(interface),即 getFirstName()getLastName()

有什么方法可以加快这个过程,还是我只是以错误的方式实现它?或者这是 RMI 的“特性”?我真的很想能够在本地缓存远程对象的一些数据,以最大限度地减少远程方法调用。


更新和可能的解决方案:我创建了实现远程接口(interface)并包含对远程对象的引用的本地类。速度的提高是显而易见的,并且现在可以无缝运行(至少到目前为止)。我希望这同样适用于我们在应用程序中使用的其他接口(interface)。感谢您的意见,我认为这对我有帮助。

最佳答案

我认为您需要将显示字段添加到您的 Profile 对象中,并将它们与配置文件一起返回。在单个检查器 View 中恢复整个配置文件很好,但如果您在概览 View 中有它们,您应该在初始查询中恢复它们。

关于java - 使用带有 Swing 组件的 RMI 代理时性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com