【问题标题】:Unboundid LDAP vs Netscape LDAP performence gapUnboundid LDAP 与 Netscape LDAP 性能差距
【发布时间】:2014-02-28 13:29:09
【问题描述】:

我正在尝试使用 Tomcat 升级在 Java EE 中制作的 Web 应用程序。直到现在我一直在使用Netscape ldap implementation,现在我正在尝试升级到Unboundid Ldap。问题是 Unboundid 实现与 netscape 实现相比延迟非常高。

关于我打算做什么的一些信息:我想从 LDAP 中获取最后 5 个条目,将它们放在一个数组中并在网页中显示这个数组。

EDIT1: 我使用 Java SE 创建了 2 个用于测试库的示例应用程序。 对于每个测试,我都附上了源代码和服务器端 LDAP 日志。

结果是一样的,无论我使用多少次迭代,使用 UnboundID SDK 实现检索结果的平均时间要长得多。

对于 Netscape LDAP SDK:codelog。 对于 UnboundID LDAP SDK:codelog

EDIT2: 我也在尝试使用由 UnboundID 提供的 ldap-debugger 工具,但我不知道如何使它工作,我看到它将绑定的 ip 和端口作为参数,并且客户端应该连接ldap-debugger,他将充当代理,但是我在哪里指定服务器 ip 和端口,因为在客户端我已经为 ldap-debugger 放置了 ip 和端口?

【问题讨论】:

    标签: java jakarta-ee ldap unboundid-ldap-sdk


    【解决方案1】:

    没有任何关于您正在使用的代码的信息。在我的测试中,UnboundID LDAP SDK 比 Netscape SDK 快得多。虽然您肯定有可能找到某种极端情况,但我想排除其他一些可能性。

    首先,您如何确定每个版本的执行时间?您是在使用客户端计时(例如 System.currentTimeMillis(),再次运行代码 System.currentTimeMillis())还是服务器端计时(例如,服务器访问日志中报告的处理时间)?如果差异只存在于客户端,那肯定是 SDK 的问题,但如果差异也出现在服务器端,那么可能是正在发送的请求有所不同,导致服务器执行更多操作在一种情况下工作而不是另一种情况。您可能会使用 UnboundID LDAP SDK 提供的 ldap-debugger 工具来准确调查正在发生的通信。

    作为性能测量的一部分,您是否尝试过多次(例如,100,000 次)在紧密循环中运行每个?这可以帮助确保所有必要的 JIT 编译都已执行,垃圾收集不会出现问题,并且潜在的服务器繁忙不是问题。如果您的结论仅基于每段代码的一次运行,那么很难从中得出任何真正的结论。

    如果它确实看起来是客户端问题,那么如果您能提供更具体的细节,我将不胜感激,以便我可以更彻底地调查问题。特别是,准确查看正在发送的请求以及返回的条目将很有帮助(可以将信息匿名化,这样它就不会泄露任何敏感数据,只要它仍然表现出相同的性能特征) .如果您愿意私下提供信息,可以将信息发送至 ldapsdk-support@unboundid.com。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多