草庐IT

PERFORMANCE

全部标签

java - 我应该将 Couchbase 存储桶视为表,还是更像是模式

我打算在我的网络应用程序中使用Couchbase作为文档存储。我正在查看Java的Couchbase客户端,如果我像对待通用实体一样对待Couchbase存储桶,则您需要为每个存储桶创建单独的Couchbase客户端。这对系统来说有点矫枉过正(不过,我可以重用正在执行的服务来最小化对象创建和线程管理开销。)所以有没有办法为多个桶重用现有的CouchbaseClient(不仅添加ExecutionService)从性能的角度来看,使用单桶,根据键区分对象,并依靠View选择器进行查询不是更好吗。 最佳答案 您应该像对待数据库一样对待c

java - 循环的简写是否缓存可迭代的引用?

我可能试图变得过于高效,但我一直想知道以下两个代码示例中的哪一个会执行得更快。假设您有一个对包含Strings的ArrayList的对象的引用,并且您想要遍历该列表。以下哪项更有效(即使只是略微有效)?for(Strings:foo.getStringList())System.out.println(s);或者ArrayListstringArray=foo.getStringList();for(Strings:stringArray)System.out.println(s);如您所见,第二个循环初始化了对列表的引用,而不是像第一个示例那样在每次迭代时都调用它。除非这个概念是完全

java - 当 x = 0 时,Java 的 Math.pow(x, 2) 性能不佳

背景注意到我正在处理的Java程序的执行速度比预期的慢,我决定修改我认为可能导致问题的代码区域-调用Math.pow(x,2)从for循环中。与anotherquestionsonthissite相反,我创建的一个简单基准测试(最后的代码)发现用x*x替换Math.pow(x,2)实际上使循环加速了近70倍:x*x:5.139383msMath.pow(x,2):334.541166ms请注意,我知道该基准并不完美,并且肯定应该对这些值持保留态度-基准的目的是获得一个大概的数字。问题虽然基准测试给出了有趣的结果,但它并没有准确地对我的数据建模,因为我的数据主要由0组成。因此,更准确的测

java - SEAM:有效使用@BypassInterceptors?

我想知道在使用Seam编程时,社区可以给我什么关于使用@BypassInterceptors注释的建议?我一直在阅读有关提高Seam应用程序性能的文章,并且每篇文章都提到添加此注释可以提高性能。我的问题是,它应该应用在哪里?是否有一般规则说“当编写执行XXX的组件时,您可以安全地应用@BypassInterceptors”?例如,我应该将它应用于我的实体类吗?DAO呢?我非常想知道其他人都在做什么,以及正确应用它后您看到了什么样的性能提升。 最佳答案 如果您确定您不需要拦截器功能,您可以依靠@BypassInterceptor注释来

c# - 为什么 C# 中的大多数类型都继承自 System.Object?

这个问题在这里已经有了答案:Whydoeseveryclassin.NETinheritfromObject?(9个回答)8年前关闭。我正在检查C#中的int和float类型,甚至它们都有“ToString”等方法,这意味着它们是从System.Object继承的。但这不会导致性能下降吗?我知道由于性能原因,他们没有在Java中创建像int对象这样的基本类型。此规则是否也适用于.NET?如果是这样,那是否意味着.NET比Java慢?但实际上这不是真的,因为我用C#编写的程序比我用Java编写的程序运行得更好。那么这里有什么我不明白的地方吗? 最佳答案

java - 使用设计模式会使 Java 代码变慢吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。使用设计模式会使Java代码变慢吗?如果我使用额外的接口(interface)和语法结构(如类包装),我会得到组织良好但速度慢的代码,还是不会使我的代码显着变慢?

java - 递归与堆栈实现。为什么递归返回 StackOverflow 而 Stack 不返回?

本题依据:我将在今年夏天毕业并获得CS学位,而且教授从未强调过Stack的重要性。然而,我有多个项目都专注于递归的使用。我发现递归很有用且令人兴奋,并且在我的个人项目中经常使用它。我最近去参加了一次工作面试,面试官对他们问题的递归解决方案感到非常失望。他们想要Stack解决方案。我做了很多研究,但我仍然不确定何时使用哪个。给出以下演示:publicclassTestCode{staticlongstartTime=0;staticlongstopTime=0;staticlongtotalTime=0;publicstaticvoidmain(String[]args)throwsIO

java - 关于空间/时间的 Groovy 集合性能注意事项

与普通Javafor循环相比,Groovys集合方法(关于空间(!)和时间)的性能如何?例如对于这个用例:sum()与带变量的for循环each()与带变量的for循环inject()与带变量的for循环collect()与带有临时集合的for循环findAll()与带有临时集合的for循环find()与带变量的for循环因此,考虑到这些结果,是否建议在关键环境(例如Grails-WebApp)中使用for循环而不是Groovy集合方法?是否有关于Groovy/Grails性能(优化)的资源?使用这个GBench测试,我得到了以下CPU时间结果:usersystemcpurealfor

java - 通用类型和性能

我想知道在整个程序中使用通用类型是否会对应用程序产生任何(显着的)性能下降影响。我使用了很多集合对象(列表、集合、映射)并为应用程序提供更好的灵active(这个应用程序必须集成到其他应用程序中)我只使用通用类型而不是参数化它们。这是一种常见做法还是有人有建议/建议?会不会有任何显着的性能下降?提前致谢 最佳答案 根本不会降低性能,因为泛型实际上是一种“编译时技巧”。如果不使用泛型,编译器会使用此信息来拒绝某些类型不安全的做法,否则这些做法会在运行时出现。在运行时仅使用原始类(即泛型参数的上限),因此性能与不使用泛型并自己转换类相同

java - 在数组上调用 .length 与保存 size 变量在性能上有区别吗?

我正在创建一个模拟程序,我希望代码非常优化。现在我有一个数组,它在我使用的各种for循环中循环了很多for(inti=0;i我想知道如果我在类中保存一个变量来指定这个数组长度,然后使用它来代替,是否会更快。或者它是否重要。 最佳答案 访问数组的长度属性是尽可能快的。您会看到有人建议您在进入循环之前保存数据结构大小,因为这意味着每次迭代都使用一个方法。但这是一种微优化,几乎不重要。在您有数据告诉您这是性能问题的原因之前,不要太担心这种事情。您应该花更多时间考虑要嵌入该循环的算法、可能的并行性等。这对您寻求优化解决方案的意义要大得多。