小编Geo*_*iou的帖子

BCrypt性能恶化

我们在Jboss服务器6.1中运行了三个Web应用程序(标准的Spring MVC-Hibernate).所有这三个应用程序共享一个通用的身份验证方法,该方法被编译为JAR并包含在每个WAR文件中.我们的身份验证方法使用org.springframework.security.crypto.bcrypt.BCrypt来哈希用户密码,请参阅以下内容:

hashedPassword.equals(BCrypt.hashpw(plainTextPassword, salt));
Run Code Online (Sandbox Code Playgroud)

JBOSS启动选项

set "JAVA_OPTS=-Xms2048m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -verbosegc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:gc.txt -XX:+UseParallelOldGC

问题: 当服务器重新启动时,Bcrypt.hashpw需要100ms来解密密码.然而,经过一段时间(没有模式),Bcrypt.hashpw性能突然从100毫秒上升到10秒.这没有明显的原因.

更多信息:

  • Hibernate版本:4.2.4.Final
  • Spring Version:4.0.5.RELEASE Spring
  • 安全版本:3.2.4.RELEASE

有没有其他人见过这个问题?

java performance spring-mvc spring-security bcrypt

19
推荐指数
1
解决办法
3472
查看次数

用于在线游戏的Java机器人

我正在使用java在java中创建一个bot java.awt.Robot.机器人在浏览器上工作正常(我也使用Microsoft Word测试过它!)但是当我在游戏中运行它时,唯一有效的功能是mouseMove.我想构建一个只需按下键盘按钮的机器人.

我实例化了机器人类

Robot r = new Robot();
Run Code Online (Sandbox Code Playgroud)

然后我做一些简单的事情:按z,按1,移动鼠标并右键单击.

r.keyPress(KeyEvent.VK_Z);
r.keyRelease(KeyEvent.VK_Z);

r.keyPress(KeyEvent.VK_1);
System.out.println("Press 1 button");
r.keyRelease(KeyEvent.VK_1);
System.out.println("Release 1 button");
r.delay(1000);

System.out.println("Move mouse");
r.mouseMove(110, 690);

System.out.println("Press");
r.mousePress(InputEvent.BUTTON3_MASK);
System.out.println("Release");
r.mouseRelease(InputEvent.BUTTON3_MASK);
Run Code Online (Sandbox Code Playgroud)

为什么会这样?如果它在后台运行,这个Robot类可以在游戏中执行这些操作吗?

谢谢

更新:例如,如果我在PES 2012上运行我的机器人,它运行正常,但如果我在像Cabal这样的在线游戏上运行它,它不起作用?游戏的保护系统没有检测到任何东西,所以情况并非如此.

java bots online-game awtrobot

6
推荐指数
1
解决办法
1万
查看次数