首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jbcrypt时的可变和劣化性能

使用jbcrypt时的可变和劣化性能
EN

Stack Overflow用户
提问于 2014-02-05 16:51:45
回答 2查看 766关注 0票数 6

我使用jbcrypt在一个项目中散列密码。在我使用的硬件上验证密码时,性能大约是500 ms (log_rounds设置为12)。然而,经过一段时间的定期使用,表演时间突然下降到惊人的15秒。下降是非常突然的,没有积累,并保持不变,直到进程重新启动。

分析显示,在键(..)中使用了额外的时间方法。

来源:http://jbcrypt.googlecode.com/svn/tags/jbcrypt-0.3m/src/main/java/org/mindrot/jbcrypt/BCrypt.java

该方法只使用xor、shift等基本函数计算散列,不存在对象赋值、外部资源使用、随机数生成等问题。

对于同一进程中的其他功能,性能不会下降。内存分配稳定且低。不涉及完整的GC。

以前有没有人见过这个,或者有什么线索知道为什么会这样?我可以理解一个可变的性能,在某种程度上取决于其他情况,但这是一个非常突然和稳定的下降,从大约500毫秒。大约15000毫秒。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-15 21:52:00

结果发现,这与类加载有关。这个库装入了许多不同的类加载器。当我们在系统类加载器中加载库时,问题消失了。

票数 3
EN

Stack Overflow用户

发布于 2014-02-07 14:45:04

SecureRandom有可能耗尽了熵,从而导致了这个问题。

请参阅How to solve performance problem with Java SecureRandom?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21583395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档