使用Java API将文件上载到GCS时CPU使用率高
有谁能告诉我为什么在Java中将文件上传到GCS时,使用Java API将文件上载到GCS时CPU使用率高,java,ssl,google-cloud-storage,Java,Ssl,Google Cloud Storage,有谁能告诉我为什么在Java中将文件上传到GCS时,com.sun.crypto.provider.GHASH#update(byte[],int,int)会占用大量CPU 这是密码 看起来像是一些内部SSL操作,但是,SSL不应该引起太多的CPU消耗 环境规格: java版本“1.8.0_45” Java热点(TM)64位服务器虚拟机(构建) 25.45-b02,混合模式) Ubuntu精确版(12.04.3 LTS) 已试用google api版本: google.api:googleap
com.sun.crypto.provider.GHASH#update(byte[],int,int)
会占用大量CPU
这是密码
看起来像是一些内部SSL操作,但是,SSL不应该引起太多的CPU消耗
环境规格:
java版本“1.8.0_45”
Java热点(TM)64位服务器虚拟机(构建)
25.45-b02,混合模式)
Ubuntu精确版(12.04.3 LTS)
已试用google api版本:
google.api:googleapi服务存储:v1-rev26-1.19.1
google.api:googleapi服务存储:v1-rev33-1.20.0
事实上,切换到
Java1.7.0\u80-b15
解决了这个问题。
即使sun的加密方法
com.sun.crypto.provider.ARCFOURCipher.engineUpdate(字节[],int,int,字节[],int)ARCFOURCipher.java 12104 12104
他们仍然是CPU消费者中的佼佼者,对于这个版本,他们要温和得多
类似的问题也发生在亚马逊SDK上 将jdk8升级到u115(比u60旧)提高了我们的AWS SDK性能~4-5x 所以我想强调的是,这是一个普遍的性能问题,而不是特定于GCPSDK(或AWS)
很有趣。您使用的是哪个版本的Java?谷歌搜索表明,某些版本的Java8在该功能上有一些奇怪的性能退化。@BrandonYarbrough添加了一些环境规范。具有讽刺意味的是,Java7不再是supported@BrandonYarbrough我们是否有可能绕过此功能,以其他api或不同的上载配置上载到GCS?