草庐IT

PERFORMANCE

全部标签

java - .NET与Java子串操作性能对比

获取字符串的子字符串是一种非常常见的字符串操作操作,但我听说Java和.NET平台在性能/实现方面可能存在相当大的差异。具体来说,我听说在Java中,java.lang.String为substring提供了constant时间操作,但在.NET中,System.字符串提供线性性能子字符串。真的是这样吗?这可以在文档/源代码等中得到确认吗?这个实现是特定的,还是由语言和/或平台指定的?每种方法的优缺点是什么?从一个平台迁移到另一个平台的人应该注意什么以避免陷入任何性能陷阱? 最佳答案 在.NET中,Substring是O(n)而不是

c# - 写入后是否必须优化lucene索引?

目前我正在写入完成后调用索引编写器的优化方法。由于我的数据集很大,需要很长时间(并且需要更多空间(2*实际大小))来优化索引。我非常担心这一点,因为索引中经常包含很多文档。所以可以关闭优化吗​​?对性能有何影响,例如未优化时查询速度有多慢?干杯 最佳答案 LuceneFAQ说:WhatisindexoptimizationandwhenshouldIuseit?TheIndexWriterclasssupportsanoptimize()methodthatcompactstheindexdatabaseandspeedsupque

java - 在 Java 中导入特定包或带有通配符的整棵树更好吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhyisusingawildcardwithaJavaimportstatementbad?现在我使用了很多java.util包:importjava.util.Calendar;importjava.util.logging.ConsoleHandler;importjava.util.logging.Level;importjava.util.logging.LogRecord;importjava.util.logging.Logger;这样做会更有效率吗:importjava.util.*;这样做的

java - 为什么 static final 在每次迭代中都比 new 慢

为什么代码片段A比代码片段B慢14倍?(在Windows764位上使用jdk1.8.0_60测试)代码片段A:importjava.awt.geom.RoundRectangle2D;publicclassTest{privatestaticfinalRoundRectangle2D.DoubleRECTANGLE=newRoundRectangle2D.Double(1,2,3,4,5,6);publicstaticvoidmain(String[]args){intresult=RECTANGLE.hashCode();longstart=System.nanoTime();for

java - 从手写持久层迁移到ORM

我们目前正在评估从手写持久层迁移到ORM的选项。我们有一堆遗留的持久对象(~200),它们实现了这样的简单接口(interface):interfaceJDBC{publiclonggetId();publicvoidsetId(longid);publicvoidretrieve();publicvoidsetDataSource(DataSourceds);}当retrieve()被调用时,对象通过向使用它在setter中收到的ID提供的连接发出手写SQL查询来填充自身(这通常是查询的唯一参数)。它自己管理它的语句、结果集等。一些对象具有特殊风格的retrive()方法,例如ret

java - tomcat7 vs. tomcat6,它们的性能有什么显着差异吗?

我一直致力于对JavaWeb应用程序(JSP+Tomcat6+Struts2+Hibernate+mysql)进行压力测试,我得到的结果并不值得吹嘘!于是把tomcat版本升级到7,哇!我每秒收到的请求数比以前提高了5倍。请赐教,tomcat6和tomcat7的性能有这么大的区别吗?还是我的配置有问题? 最佳答案 Tomcat"WhichVersion"页面包含不同Tomcat版本之间差异的高级概述。Tomcat7.x部分并未声称Tomcat7.x与Tomcat6.x相比性能有大幅提升。谷歌搜索也没有提供任何明确的证据。我倾向于认为

java - 为什么 java 收集流对每个 getter 运行两次?

我有一个包含项目的列表,其中每个项目都是一个具有我感兴趣的getter方法的对象。我想遍历整个列表以总结所有这些getter结果。当我使用java8流时,它看起来像这样:doublecurrentProduction=itemList.stream().collect(Collectors.summingDouble((e)->e.getProduction(param)));在普通的旧java中,它看起来像这样:for(Itemitem:itemList){currentProduction+=item.getProduction(param);}这两种方法产生完全相同的结果,但我的

java - 如何测试java应用程序的性能瓶颈?

我正在审查一个大型Java应用程序,看看是否存在任何性能瓶颈。真正的问题是我无法将性能问题精确定位到任何单个模块。整个应用程序本身就很慢。有什么工具/技术可以帮助我解决这个问题吗? 最佳答案 尝试对运行的代码使用分析器。它应该可以帮助您确定瓶颈。尝试jprofiler或Netbeansprofiler 关于java-如何测试java应用程序的性能瓶颈?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

java - 在数据库中排序数据的优缺点?

假设我有一个字段类型为VARCHAR的表。我需要从该表中按该字段的字母顺序排序的数据。什么是最好的方法(为了性能):将按字段排序添加到SQL查询或在数据已经获取时对数据进行排序?我正在使用Java(与Hibernate),但我无法说明任何关于数据库引擎的信息。它可以是任何流行的关系数据库(如MySQL或MSSqlServer或Oracle或HSQLDB或任何其他数据库)。表中的记录数量可能变化很大,但我们假设有5k条记录。UPD:二级hibernate缓存(例如EHCache)对排序数据的支持程度如何? 最佳答案 如果这个字段被索引

java - while(true) ServerSocket Listen 的效率

我想知道典型的while(true)ServerSocket监听循环是否需要整个核心来等待并接受客户端连接(即使在实现可运行并使用Thread.start())我正在实现一种分布式计算集群,每台计算机都需要它拥有的每个核心来进行计算。主节点需要与这些计算机通信(调用修改算法功能的静态方法)。我需要使用套接字的原因是跨平台/跨语言的能力。在某些情况下,PHP将调用这些java静态方法。我使用了一个java分析器(YourKit),我可以看到我正在运行的ServerSocket监听线程,它从不hibernate并且一直在运行。有没有更好的方法来做我想做的事?或者,性能影响可以忽略不计吗?如