首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ant任务耗时太长,无法时间戳。

Ant任务耗时太长,无法时间戳。
EN

Stack Overflow用户
提问于 2014-04-22 08:14:49
回答 1查看 1.3K关注 0票数 3

我正在用Hudson建立一个项目。我有几个jar文件,我想使用Ant SignJar任务用时间戳签名。当没有时间戳的时候,它就像一种魅力--一个文件大约需要2-3秒。当我将'tsaurl‘属性添加到SignJar任务时,就会出现问题。然后,时间戳需要几分钟的时间来处理一个文件。我尝试使用不同的时间戳服务器,但没有帮助。有人知道为什么要花这么多时间吗?首先,有没有办法解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2015-01-07 12:12:44

我花了太长时间(至少在Linux上)所遇到的主要问题是内核熵池枯竭。在这一点上,过程阻塞,直到更多的熵到来。这导致了您所看到的jarsigner进程的症状,它坐在那里,没有占用CPU时间,但也没有做太多事情。

在某种程度上(从1.5AFAIK到1.6AFAIK),Java从使用/dev/urandom/dev/random。在现代计算机上,真正的熵实际上是一种稀缺的资源--大量的RAM减少了磁盘活动,缓存东西的智能程序减少了网络活动。我被告知,在虚拟机上(像许多构建服务器一样),熵收集率可能更低。

你可以

  • 将Java重新配置为使用/dev/urandom (如果您不是偏执狂)
  • /dev/random中注入附加熵的方法

我选择了选项B:我为我选择的发行版(Ubuntu)安装了randomsound包。这为您的话筒采样白花,并使用它注入熵的/dev/random时,它运行干涸。这样做的主要缺点是阻止麦克风用于其他用途。还有其他获得额外熵的方法,比如将磁盘复制到/dev/null,或者执行包更新(大量磁盘和网络流量)。您可能希望使用硬件RNG将一个或多个服务器打包,并安装一些可以为其他服务器提供服务熵的设备。或者即使是一个USB声卡和randomsound也能工作(在服务器房间里有大量的whitenoise )。

对于选项A,可以设置属性

代码语言:javascript
运行
复制
-Djava.security.egd=file:/dev/./urandom

(注意额外的点-这是为了解决“聪明”的代码,假设你想要/dev/random,即使你没有这样说:见:https://bugs.openjdk.java.net/browse/JDK-6202721 )

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

https://stackoverflow.com/questions/23214082

复制
相关文章

相似问题

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