Questions tagged «performance»

与提高应用程序性能有关的问题可能涉及从选择软件体系结构到算法选择的范围。


1
为什么本机ES6承诺比bluebird更慢且占用更多内存?
在此基准测试中,与Bluebird Promise相比,套件完成ES6 Promise的时间要长4倍,并且使用的内存是3.6倍。 JavaScript库如何比用C编写的v8本机实现更快,更轻巧?Bluebird Promise与本机ES6 Promise具有完全相同的API(以及大量额外的实用程序方法)。 是本机实现编写得不好,还是我缺少其他方面?

30
编码时微优化重要吗?
最近,我问堆栈溢出问题,找出原因isset()函数比的strlen()快于PHP。这引发了关于可读代码的重要性以及是否值得考虑提高代码中微秒级性能的问题。 我父亲是一位退休的程序员,我给他看了答案。他绝对确定,即使是程序员,即使在微级别上也没有考虑其代码的性能,那么他们就不是优秀的程序员。 我不太确定-也许计算能力的提高意味着我们不再需要考虑这些微性能的改进?也许这种考虑取决于编写实际语言代码的人?(在上述情况下为PHP)。 环境因素可能很重要-互联网消耗了世界能源的10%。我想知道在数百万个网站上万亿次复制时,浪费几微秒的代码是多少? 我想最好根据有关编程的事实来了解答案。 编码时微优化重要吗? 我个人对25个答案的总结,谢谢大家。 有时我们确实需要担心微优化,但仅在极少数情况下才需要担心。在大多数情况下,可靠性和可读性更为重要。但是,不时考虑进行微优化并没有什么坏处。基本的理解可以帮助我们在编码时不要做出明显的错误选择,例如 if (expensiveFunction() || counter < X) 应该 if (counter < X || expensiveFunction()) (来自@ zidarsk8的示例)这可能是一个便宜的函数,因此更改代码将是微优化。但是,有了基本的了解,您就不必这样做了,因为您一开始就可以正确地编写它。

30
如何成为一个“更快”的程序员?
我最近的工作评估只包括一个弱点:及时性。我已经知道我可以做些改进的事情,但是我正在寻找更多。 在提高其输出速度而又不牺牲其质量的情况下,是否有人对它们进行提示或建议? 您如何估计时间表并遵守时间表?您如何做才能在较短的时间内完成更多工作? 非常感谢您提供任何反馈意见,谢谢,

30
给开发人员较慢的开发机器会导致更快/更有效的代码吗?[关闭]
假设我给开发人员一个尖叫的快速机器。基于WPF的VS2010加载非常快。然后,开发人员创建一个WPF或WPF / e应用程序,该应用程序可以在其盒子上正常运行,但在现实世界中运行得慢得多。 这个问题分为两个部分... 1)如果我给开发人员提供较慢的计算机,这是否意味着生成的代码可能更快或更高效? 2)我该如何给开发人员以快速的IDE体验,同时又提供“典型”的运行时体验? 更新: 作为记录,我正在准备对管理层的公正回应。这不是我的主意,你们正在帮助我纠正客户的错误要求。感谢您给我更多的弹药,并提及在何时何地使用这种弹药。我为+1的有效用例进行了+1,例如: -特定的服务器端编程优化 -测试实验室 -可能会购买更好的服务器,而不是顶级显卡
130 ide  testing  performance 

11
是什么支持C ++可以比使用JIT的JVM或CLR更快的说法呢?[关闭]
我在许多问题中都注意到了SE上一个经常出现的主题,即一个持续的论点,即C ++比Java之类的高级语言更快和/或更有效。相反的论点是,由于JIT等原因,现代JVM或CLR可以同样高效,因为它可以处理越来越多的任务,而C ++ 仅在知道自己在做什么以及为什么以某种方式做事的情况下才更有效率。将会提高性能。这是显而易见的,并且很有意义。 我想知道一个基本的解释(如果有这样的事情...),以为什么和怎么样的任务一定是用C ++更快比JVM或CLR?仅仅是因为C ++被编译成机器代码,而JVM或CLR在运行时仍具有JIT编译的处理开销吗? 当我尝试研究该主题时,我发现的只是上面概述的相同论点,而没有任何确切的信息来了解如何准确地将C ++用于高性能计算。
119 java  c++  performance  jit 

15
何时针对一种方法优化内存与性能速度?
我最近在亚马逊接受了采访。在编码会议期间,面试官问为什么我在方法中声明了变量。我解释了我的过程,他挑战我以更少的变量解决相同的问题。例如(这不是从采访),我开始与方法A然后提高它方法B,通过去除int s。他很高兴,并说这将通过这种方法减少内存使用。 我了解其背后的逻辑,但我的问题是: 什么时候适合使用方法A与方法B,反之亦然? 您可以看到,由于方法A被int s声明了,因此它将具有更高的内存使用率,但是它只需执行一次计算即可,即a + b。另一方面,方法B的内存使用量较低,但是必须执行两次计算,即a + b两次。什么时候比另一种使用一种技术?还是其中一种技术总是总是比其他技术更受青睐?评估这两种方法时要考虑什么? 方法A: private bool IsSumInRange(int a, int b) { int s = a + b; if (s > 1000 || s < -1000) return false; else return true; } 方法B: private bool IsSumInRange(int a, int b) { if (a + b …

14
编写依赖于编译器优化的代码是不好的做法吗?
我一直在学习一些C ++,并且经常不得不从该函数内创建的函数中返回大型对象。我知道有按引用传递,返回指针和返回引用类型的解决方案,但我还读到C ++编译器(和C ++标准)允许返回值优化,从而避免了通过内存复制这些大对象,从而节省所有时间和内存。 现在,当以值显式返回对象时,我感到语法更加清晰,并且编译器通常将使用RVO并使过程更高效。依靠这种优化是不好的做法吗?这对于用户来说使代码更清晰,更易读,这是非常重要的,但是我应该谨慎地假设编译器会抓住RVO的机会吗? 这是微优化,还是在设计代码时应牢记的一点?
99 c++  performance 

12
什么时候函数调用成本在现代编译器中仍然很重要?
我是一个虔诚的人,并努力不犯罪。这就是为什么我倾向于编写较小的函数(小于此值以重写Robert C. Martin)以符合Clean Code圣经所定的几条诫命。但是在检查一些东西的同时,我登陆了这篇文章,在下面我读到这个评论: 请记住,方法调用的成本可能很高,具体取决于语言。在编写可读代码和编写性能代码之间几乎总是要权衡取舍。 考虑到高性能现代编译器行业的丰富性,如今在什么条件下该引用语句仍然有效? 那是我唯一的问题。这与我应该编写长函数还是小函数无关。我只是强调,您的反馈可能会或不会有助于改变我的态度,使我无法抗拒亵渎神灵的诱惑。

6
不变性是否会损害JavaScript的性能?
JavaScript中似乎有一种趋向于将数据结构视为不变的趋势。例如,如果您需要更改一个对象的单个属性,则最好使用新属性创建一个全新的对象,然后从旧对象复制所有其他属性,然后对旧对象进行垃圾回收。(那是我的理解。) 我最初的反应是,这听起来会降低性能。 但是后来,像Immutable.js和Redux.js这样的库是由比我更聪明的人编写的,并且似乎对性能有很强的关注,因此使我怀疑我对垃圾的理解(及其对性能的影响)是否错误。 我所缺少的不变性是否具有性能优势,它们是否超过了创建大量垃圾的弊端?

15
为什么Java可能比C ++更快?
在基准测试中,Java有时会胜过C ++。当然,有时C ++的表现会更好。 请参阅以下链接: http://keithlea.com/javabench/ http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ http://blog.cfelde.com/2010/06/c-vs-java-performance/ 但这怎么可能呢?令我惊讶的是,解释的字节码可能比编译的语言还要快。 有人可以解释一下吗?谢谢!
79 java  c++  performance 


7
1 <10的比较是否比1 <1000000便宜?
我只用了大约10亿作为z-indexCSS中a的数量,并在考虑必须进行的比较。在非常大的数字与非常小的数字之间进行比较时,ALU级别的性能是否有所不同? 例如,这两个摘要中的一个摘要会比另一个摘要贵吗? snippet 1 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 10000000000000) { //do nothing } } snippet 2 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 1000) { //do nothing } }
65 performance  cpu 

18
人们为什么仍然说Java很慢?[关闭]
在SO和其他地方,Java长期以来一直以缓慢而著称。从笑话到对问题和答案的许多评论,人们仍然认为Java仅仅基于90年代的经验就很慢。 这是我的问题:我们(大多数)不赞成人们认为Java速度慢的原因。除了小事之外,Java相当快。 那么为什么人们仍然拒绝相信Java很快呢?他们的心态一部分就是没有C / C ++的事情进展缓慢吗?是因为人们不随时间检查吗?是因为人们只是有偏见?
61 java  performance 

14
我们能否就解释代码和编译代码的性能做出一般性陈述?
我正在比较两种技术,以便提出建议,公司应该使用其中的一种。技术A的代码被解释,而技术B的代码被编译为机器代码。在我的比较中,我指出技术B一般而言会具有更好的性能,因为它没有解释过程的额外开销。我还指出,由于程序可以用多种方式编写,因此用技术A编写的程序仍然有可能胜过使用技术B编写的程序。 当我将此报告提交审核时,审核员表示我没有提供清楚的理由说明为什么解释流程的总费用通常会足够大,以至于我们可以得出结论,技术B的性能会更好。 所以我的问题是,我们能否谈谈编译/解释技术的性能?如果我们可以说编译的速度通常快于解释的速度,那么我该如何说服审阅者呢?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.