草庐IT

Performance

全部标签

java - Java 枚举中可以拥有的成员数量有多少限制?

假设您在Java中有一个这样的假设枚举(纯粹出于演示目的,这不是我真正希望使用的代码):enumExample{FIRST,SECOND,THIRD,...LAST;}在编译器停止之前,枚举中最多可以包含多少成员?其次,当您的代码引用具有10个成员而不是100或1,000个成员的枚举时(除了存储大型类所需的明显内存开销之外),在运行时是否存在任何性能差异? 最佳答案 语言规范本身没有限制。然而,类文件有许多限制枚举数量的限制,上限为65,536(2^16)个枚举:字段数JVMS4.1指定ClassFile最多可以有65,536(2^

java - 在方法之间重用 PreparedStatement?

我们都knowthat我们应该重用JDBCPreparedStatement而不是在循环中创建新实例。但是如何处理不同方法调用之间的PreparedStatement重用呢?重用“规则”是否仍然有效?我真的应该考虑为PreparedStatement使用一个字段,还是应该在每次调用时关闭并重新创建准备好的语句(将其保存在本地)?(当然,此类的实例将绑定(bind)到Connection,这在某些体系结构中可能是一个缺点)我知道理想的答案可能是“视情况而定”。但我正在为经验不足的开发人员寻找最佳实践,以便他们在大多数情况下都能做出正确的选择。 最佳答案

java - 使用 java : import static 的任何性能问题

我们在代码中经常使用util函数和一些功能,如Logger、EventWriter、一些常见的DB调用等。我更喜欢这些函数是静态的,因为在我的每个代码中实例化这些类中的函数会严重影响性能(会是吗?!!!?,我在stackoverflow中读到过多的类实例化会性能受到影响,我正在开发一个具有大型客户数据库和服务器上高访问日志的项目)。我遇到了看起来很酷的staticimportinjava,我想知道:在使用它之前是否有任何严重的考虑?我已经从StackOverFlow收集到的东西:UsingstaticimportcouldmaketheCodeNon-Readable,likejudg

java - 哈希集。在大集合中表现缓慢

我遇到了一个我找不到解决方案的问题。我正在使用HashSet来存储值。我存储的值属于自定义类型Cycles,其中我已经覆盖了HashCode和equals如下,以确保缓慢的性能不是由hascode或equal方法引起的此外,我已将哈希集的初始容量设置为10.000.000@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result+(int)(cycleId^(cycleId>>>32));returnresult;}@Overridepublicbooleanequals(Objectobj

java - 多线程不比单线程快(简单循环测试)

我正在试验一些多线程结构,但不知何故,多线程似乎并不比单线程快。我将其缩小为一个非常简单的测试,其中包含一个嵌套循环(1000x1000),系统只在其中计算。下面我贴出了单线程和多线程的代码以及它们是如何执行的。结果是单线程完成循环大约需要110ms,而两个线程也需要大约112ms。我不认为问题是多线程的开销。如果我只将两个Runnable中的一个提交给ThreadPoolExecutor,它的执行时间是单线程的一半,这是有道理的。但是添加第二个Runnable会使它慢10倍。两个3.00Ghz内核都在100%运行。我认为这可能是特定于pc的,因为其他人的pc在多线程上显示了双倍速度的

java - instanceof运算符java的复杂性

我想知道在Java中使用instanceof运算符的计算成本有多高,并且想知道是否有更好的替代方案可用 最佳答案 另一种方法是避免使用instanceof并正确设计您的类(在OO意义上)。因为instanceof运算符有一个相应的“instanceof”字节码指令,所以可能不会有更高性能的方法;但这也可能取决于实际JVM的优化方式。 关于java-instanceof运算符java的复杂性,我们在StackOverflow上找到一个类似的问题: https:/

Java降低CPU使用率

问候-我们在工作中遇到了一些喜欢使用的疯子while(true){//Code}在他们的代码中。正如您可以想象的那样,这会最大限度地利用CPU。有谁知道降低CPU使用率以便其他人也可以使用服务器的方法。代码本身只是不断地轮询互联网以获取网站上的更新。因此我想稍微sleep的方法会大大降低CPU使用率。此外,所有操作都是在String对象(Java)中完成的,有人知道StringBuilder会减少多少开销吗?感谢指点 最佳答案 很多关于StringBuilder的“民间智慧”都是不正确的。例如,改变这个:Strings=s1+":"

java - 最佳(scala 和其他针对 java vm 的语言)优化

我只是在阅读有关genericsspecialization的scala实现的信息,他们通过此功能实现的速度提升确实引起了我的注意。我想知道还有哪些其他功能具有针对javavm的语言实现,实际上使它们的性能比java更好?我知道生成的代码离java越远,它的性能下降得越远。所以我真的很想知道语言还可以实现哪些其他功能来在Java中实现更好的性能。请不要回答这个谈论scala在java之上的非常好的特性的问题,我只是在谈论性能。此外,如果您有尚未实现的建议,请务必回答!谢谢! 最佳答案 Scala做supporttail-callop

java - 在 java 中扫描非常大的文件的最快方法是什么?

假设我有一个非常大的文本文件。性能真的很重要。我想做的就是扫描它以查找某个字符串。也许我想数一数我有多少,但这真的不是重点。重点是:最快的方法是什么?我不关心维护它需要快速。快速是关键。 最佳答案 对于一次性搜索,使用Scanner,按照建议hereAsimpletechniquethatcouldwellbeconsiderablyfasterthanindexOf()istouseaScanner,withthemethodfindWithinHorizon().IfyouuseaconstructorthattakesaFil

java - Java 中冗余导入语句的影响是什么?

冗余的javaimport语句会产生什么影响?它们会影响编译运行时(性能/大小)吗?或者只是智能感知之类的东西?以不同的方式提问:移除它们有多重要? 最佳答案 导入语句只影响编译时发生的事情。编译器获取此代码,并创建一个.class文件,以可执行格式(二进制形式)表示您的代码。最终,二进制文件完全相同,但制作它们的方法不同。我们来看一个简单的案例:importjava.util.*;对比importjava.util.ArrayList;importjava.util.List;用于://...ListsomeList=newArr