草庐IT

Performance

全部标签

java - Java Hotspot 服务器中多态性的高成本

当我在JavaHotspot客户端中运行计时测试程序时,我得到了一致的行为。然而,当我在Hotspot服务器上运行它时,我得到了意想不到的结果。本质上,在我尝试过的某些情况下,多态性的成本高得令人无法接受复制下面。这是Hotspot服务器的已知问题/错误,还是我做错了什么?测试程序和时间如下:Inteli7,Windows8JavaHotSpot(TM)64-BitServerVM(build24.45-b08,mixedmode)Mine2:0.387028831随着我添加额外的测试,情况变得更糟。列表末尾附近的测试时间完全关闭。interfacecanDoIsSquare{bool

java - 使用 jbcrypt 时性能可变且性能下降

我正在使用jbcrypt对项目中的密码进行哈希处理。在我使用的硬件上验证密码时,性能约为500毫秒(log_rounds设置为12)。然而,在正常使用一段时间后,性能时间突然下降到惊人的15秒。下降非常突然,没有累积,并且在过程重新启动之前保持不变。分析显示额外的时间用在了key(..)方法中。来源:http://jbcrypt.googlecode.com/svn/tags/jbcrypt-0.3m/src/main/java/org/mindrot/jbcrypt/BCrypt.java该方法仅使用xor、and、shift等基本函数计算哈希,没有对象分配、外部资源使用、随机数生成

java - Java中的“大字典”实现

我正在执行一个Java项目,该项目将使用“大词典”的单词。“字典”是指分配给字符串的某些数字(int)。我所说的“大”是指100MB左右的文件。我想出的第一个解决方案可能是最简单的。在初始化时,我读入了整个文件并创建了一个大的HashMap,稍后将用于查找字符串。有没有一种不需要在初始化时读取整个文件的有效方法呢?也许不是,但是如果文件真的很大,比方说按照可用RAM的顺序呢?所以基本上我正在寻找一种方法来在存储在内存中的大型字典中高效地查找内容。感谢您到目前为止的回答,因此我意识到我的问题可以更具体一些。正如您可能已经猜到的那样,该应用程序与文本挖掘有关,特别是以稀疏vector的形式

java - 从 Hibernate 3 迁移到 4 会减慢启动速度

我们正在尝试将我们的项目从hibernate3迁移到hibernate4。一切正常,但问题是启动。我们不使用JPA,我们使用带有xml文件和映射文件的直接hibernate。com.informix.jdbc.IfxDriverjdbc:informix-sqli://xxx:xxx/xxx:INFORMIXSERVER=xxxxxxxxxorg.hibernate.dialect.InformixDialecttruefalsedev.xml属性generated.mappingFile是一个自己的属性。启动时将加载文件(dev.xml)。该文件如下所示:...我们减少了这篇文章中的

java - 多次打开和关闭同一文件与长时间打开文件

每当JTextArea字段中的内容发生任何变化时,我都会写入一个File。我决定每次根据更改事件打开和关闭文件内容。有点像,publicvoidaddToLogFile(StringchangeContent){try{PrintWriterpw=newPrintWriter(newBufferedWriter(newFileWriter(currentLogFile,true)));pw.print(changeContent);pw.close();}catch(FileNotFoundExceptionex){Logger.getLogger(Main.class.getName

java - 使用 JIT 编译器的 Collections.emptyList 和空 ArrayList 的性能

使用Collections.emptyList()或空的ArrayList之间是否存在性能差异,尤其是在使用JIT编译器时?我可以想象-例如-JIT编译器不会执行内联或静态方法调用,因为执行的方法取决于类型。编辑我知道Collections.emptyList()返回一个不可变列表,而ArrayList是可变对象。我的意思是,如果我将一个或另一个作为参数传递给方法并且该方法不修改列表,是否会限制JIT编译器优化该方法的可能性?一个简单的例子(只是为了阐明我的意思):intsum(Listlist){intsum=0;for(inti=0;i如果我只使用ArrayList调用此方法,JI

java - 一种更有效的口头算术/字母算术方法?

也许你们中的大多数人都知道发送+更多=金钱。好吧,我目前正在学习Java,其中一项练习是我必须解决HES+THE=BEST。现在,到目前为止我可以/应该使用if-for-while-do循环,没有别的。虽然我确信有不同的方法可以解决它,但这不是我正在进行的练习的重点。我必须能够以最有效的方式使用if-for-while-do循环。我的问题?我似乎想不出一个有效的方法来解决它!我想出了这个,它解决了这个难题,但也许是最有效的方法:publicclassVerbalarithmetics{publicstaticvoidmain(Stringargs[]){//CountintVariab

java - Protocol Buffers 中 getSerializedSize() 的性能损失

在使用writeTo(OutputStream)序列化消息之前,在GPB消息上调用getSerializedSize()是否会降低性能?在将消息写入输出流之前,我需要知道消息的大小。我在Java上使用GPB。 最佳答案 没有性能损失。来自thisthread的第二条消息在Protobuf邮件列表上:YoucancallgetSerializedSize()tofindoutthemessagesizeaheadoftime.Notethatcallingthisdoesn'tactuallywasteanytimesincether

java - 如何在 Spring 3.0 应用程序中配置 Hibernate 统计信息?

我们如何配置,以便在基于SpringMVC的Web应用程序中通过JMX获取Hibernate统计信息。有没有更好的方法来跟踪Hibernate性能。 最佳答案 将hibernate.generate_statistics设置为true(在persistence.xml或hibernate.cfg.xml中或者在你的session工厂bean配置中)。然后注册这个bean:(如果您不使用JPA,只需指定您的sessionFactorybean而不是通过EMF获取它)最后您需要一个mbean服务器和导出器:

java - 用 hector 更快地计算 cassandra 行中的总列数

我想使用Hector计算Cassandra行的总列数客户。目前我正在使用CountQuery执行此操作,但对我来说它似乎真的很慢。同样对于一行,只有60k列需要将近2秒。我的代码目前看起来像这样:QueryResultqr=HFactory.createCountQuery(ksp,se,se).setColumnFamily("ColumnFamily1").setKey("RowKey").setRange(null,null,1000000000).execute();PS:我必须将范围设置到这么高的数字,否则它只会算我最大。到我在范围内提供的数字。有什么改进方法吗?