草庐IT

Performance

全部标签

java - 这两个循环之间有什么区别吗?

下面的两个代码片段在性能方面有什么不同吗?for(Stringproject:auth.getProjects()){//Dosomethingwith'project'}和String[]projects=auth.getProjects();for(Stringproject:projects){//Dosomethingwith'project'}对我来说,我认为第二个更好,但更长。第一个较短,但我不确定它是否更快。我不确定,但对我来说似乎每次迭代循环时,都会调用auth.getProjects。不是吗? 最佳答案 编辑:@S

java - Ruby 性能优于 Java 的案例

我正在做一个针对Java人群的关于Ruby生态系统的演示。尽管我会提出关于从生产力中获得时间yield的观点,并且较慢仍然可以足够快,但如果我能提出一个基准,那就太好了这表明Ruby在某种数字运算方面优于Java,一旦问题出现,为了双关语的缘故。不幸的是,经过数小时的搜索和实验,我仍然一无所获。谁能想出一个基准来表明事情并非完全黑白分明?理想情况下,它应该将最新版本的java1.6/1.8与最新版本的cruby进行比较。任何涉及rubinius/jruby的例子也很受欢迎。 最佳答案 我认为您不会找到任何东西。在优化方面,Ruby和

java - Java 中 String 的性能替代

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion有人记得那个开源“项目”的名字吗?它开发了一些很好的Stringinjava替代品?我知道有一个,只是无法在谷歌中找到它并且不记得名字了。(我不是在谈论StringBuilder)谢谢

java - 什么是更好的? if..else 或多个简单的 if

谈论Java性能..什么更好?if..else或多个简单的ifif(condition){some_code;returnvalue;}elseif(condition){some_code;returnvalue;}elseif(condition){some_code;returnvalue;}else{some_code;returnvalue;}或if(condition){some_code;returnvalue;}if(condition){some_code;returnvalue;}if(condition){some_code;returnvalue;}some_c

java - Cassandra的低写入性能

我是NoSQL和Cassandra的新手。我正在尝试设置以实现仅内存缓存解决方案。我正在通过从100000行文件中逐行读取并使用Hector插入到Cassandra来进行处理。我注意到每秒大约6000次插入的吞吐量非常低。整个写操作大约20.5秒,这对我们的应用程序来说是无法接受的。我们需要每秒100000次插入。我正在具有4GBRAM的Windows7计算机上进行测试。我正在进行仅插入测试。请让我知道我要去哪里错了。请建议我如何提高每秒的插入数。Keyspace:Keyspace1ReadCount:0ReadLatency:NaNms.WriteCount:177042WriteL

Java 性能与代码风格 : Making multiple method calls from the same line of code

我很好奇在同一行代码中打包多个和/或嵌套方法调用是否会提高性能,这就是为什么一些开发人员这样做的原因,但代价是降低了代码的可读性。例如//likeSetjobParamKeySet=jobParams.keySet();IteratorjobParamItrtr=jobParamKeySet.iterator();也可以写成//dislikeIteratorjobParamItrtr=jobParams.keySet().iterator();就我个人而言,我讨厌后者,因为它在同一行中进行多次计算,而且我很难阅读代码。这就是为什么我试图尽一切办法避免对每行代码进行多次评估。我也不知道j

java - 枚举是否比 public static final 常量更难维护?

我最近与friend讨论枚举与公共(public)静态最终常量。我告诉他publicstaticfinalconstants比枚举更易于维护,有时速度更快(android开发人员文档证实了这一点),也更方便。我还说过,使用枚举也会失去功能:您不能扩展枚举。您不能实例化枚举。然后他说,如果您需要实例化或扩展枚举,则不应使用枚举。然后我回答说,这就是为什么我们应该只使用常量,因为它更易于维护;如果在项目中期我们需要实例化一个枚举或扩展它怎么办?然后我们将不得不改变一切。为了说明我的观点而制作的枚举与常量示例:publicenumWeekDay{/**Wewillstartat1fordem

java - 解决 project euler 问题 #41 的技巧

我正在尝试解决Problem41Java中的Euler项目,通过计算从99888888到80000000的数字(这花了很长时间:(),我得到了98765431作为答案,但我得到的答案不正确。谁能告诉我不正确的原因获得正确答案以及如何加快我的程序? 最佳答案 一个泛数字不需要包含从1到9的所有数字,而是从1到length的所有数字。因此,您需要尝试从1到9的所有排列,从1位数字开始向上,过滤所有质数,然后取最大的一个。 关于java-解决projecteuler问题#41的技巧,我们在St

java - 如何编写一个通用的 isEmpty 方法来检查是否为空?

我正在编写一个实用程序方法,它可以检查空字符串、空字符串、集合、对象或任何一般类型-publicstaticbooleanisEmpty(Objectobj){if(obj==null)returntrue;if(objinstanceofCollection)return((Collection)obj).size()==0;//isbelowlineexpensive?finalStrings=String.valueOf(obj).trim();returns.length()==0||s.equalsIgnoreCase("null");}我怎样才能使我的上述方法高效,因为上面

java - 非常快速的均匀分布随机数生成器

作为蒙特卡罗模拟的一部分,我必须掷一组骰子,直到某些值出现一定次数。我执行此操作的代码调用了一个骰子类,该类生成1到6之间的随机数,并返回它。最初代码看起来像publicvoidroll(){value=(int)(Math.random()*6)+1;}而且速度不是很快。通过交换Math.random()为ThreadLocalRandom.current().nextInt(1,7);它用原来大约60%的时间运行了一个部分,调用了大约2.5亿次。作为完整模拟的一部分,它至少会调用此方法数十亿次,那么有没有更快的方法来做到这一点? 最佳答案