org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[110]毫秒。
在Java的安装目录下,找到 jrelibsecurity 目录,打开 java.security 文件,找到如下配置:1 securerandom.source=file:/dev/random
发现改了还变慢了。。。无解=======================================
改为:
1 securerandom.source=file:/dev/./random
Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID。
SHA1PRNG是基于SHA-1算法的伪随机数生成器,用来生成保密性较强的伪随机数。
在SHA1PRNG中,有一个种子产生器,它根据配置执行各种操作。
1)如果 java.security.egd 属性或 securerandom.source 属性指定的是 file:/dev/random 或 file:/dev/urandom ,那么JVM会使用本地种子产生器NativeSeedGenerator,它会调用super()方法,即调用SeedGenerator.URLSeedGenerator(/dev/random)方法进行初始化。
2)如果 java.security.egd 属性或 securerandom.source 属性指定的是其它已存在的URL,那么会调用SeedGenerator.URLSeedGenerator(url)方法进行初始化。