Questions tagged «performance»

对于与代码的度量或改进以及应用程序效率有关的问题。


7
列表理解和功能比“ for循环”快吗?
在Python的性能方面,是一个列表理解或功能,如map(),filter()和reduce()比for循环快?从技术上讲,为什么它们以C速度运行,而for循环以python虚拟机速度运行? 假设在我正在开发的游戏中,我需要使用for循环绘制复杂而庞大的地图。这个问题肯定是相关的,例如,如果列表理解确实确实更快,那么它将是避免滞后的更好选择(尽管代码具有视觉上的复杂性)。

10
检查字符串是否包含列表中的元素(字符串)
对于以下代码块: For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False 输出为: 情况1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True 情况2: myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False 该列表(listOfStrings)可能包含多个项目(最少20个),并且必须对照数千个字符串(例如myString)进行检查。 有没有更好(更有效)的方法来编写此代码?

20
而(1)for(;;)是否存在速度差异?
长版... 一位同事在看到我while (1)在for (;;)更快的Perl脚本中使用后断言。我认为他们应该是一样的,希望解释器可以优化任何差异。我设置了一个脚本,该脚本将为循环迭代和相同数量的while循环运行1,000,000,000,并记录它们之间的时间。我发现没有明显的区别。我的同事说,一位教授告诉他while (1)正在进行比较1 == 1,for (;;)而没有进行比较。我们使用C ++的迭代次数进行了100倍的重复相同的测试,并且差异可以忽略不计。但是,这是一个图形示例,说明了与脚本语言相比,编译后的代码可以提高多少速度。 精简版... 如果您需要无限循环来突破,有什么理由while (1)比a for (;;)优先? 注意:如果问题尚不清楚。这纯粹是几个朋友之间有趣的学术讨论。我知道这不是所有程序员都应该苦恼的超级重要概念。感谢您提供的所有出色答案,我(而且我敢肯定其他人)已经从这次讨论中学到了一些东西。 更新:上述同事在下面进行了回应。 以防万一它被埋在这里。 它来自AMD组装程序员。他说C程序员(人)没有意识到他们的代码效率低下。他今天说,但是,gcc编译器非常好,使像他这样的人破产了。他举例称,并告诉我关于while 1VS for(;;)。我现在已经习惯使用它了,但是由于它们已经过优化,因此gcc尤其是解释器这两天都将执行相同的操作(处理器跳转)。

13
在sql和应用程序中执行sql的利弊是什么
shopkeeper 该表具有以下字段: id (bigint),amount (numeric(19,2)),createddate (timestamp) 假设我有上表。我想获取昨天的记录,并通过将金额打印为美分来生成报告。 一种方法是在我的Java应用程序中执行计算并执行一个简单的查询 Date previousDate ;// $1 calculate in application Date todayDate;// $2 calculate in application select amount where createddate between $1 and $2 然后遍历记录,并将金额转换为我的Java应用程序中的美分并生成报告 另一种方法类似于在sql查询本身中执行计算: select cast(amount * 100 as int) as "Cents" from shopkeeper where createddate between date_trunc('day', now()) - interval '1 day' …

4
为什么Python的数组变慢?
我期望array.array比列表更快,因为数组似乎已拆箱。 但是,我得到以下结果: In [1]: import array In [2]: L = list(range(100000000)) In [3]: A = array.array('l', range(100000000)) In [4]: %timeit sum(L) 1 loop, best of 3: 667 ms per loop In [5]: %timeit sum(A) 1 loop, best of 3: 1.41 s per loop In [6]: %timeit sum(L) 1 loop, best …

9
对于动态的个性化Web应用程序,什么被认为是良好的响应时间?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 对于包含动态内容和个性化的复杂Web应用程序,服务器的良好响应时间是多少(因此不包括网络延迟和浏览器渲染时间)?我正在考虑诸如Facebook,Amazon,MyYahoo等网站。一个相关的问题是,后端服务的良好响应时间是多少?

10
Android-如何调查ANR?
有没有一种方法可以找出我的应用程序在哪里抛出了ANR(应用程序无响应)。我查看了/ data中的traces.txt文件,并看到了我的应用程序的跟踪。这就是我在跟踪中看到的。 DALVIK THREADS: "main" prio=5 tid=3 TIMED_WAIT | group="main" sCount=1 dsCount=0 s=0 obj=0x400143a8 | sysTid=691 nice=0 sched=0/0 handle=-1091117924 at java.lang.Object.wait(Native Method) - waiting on <0x1cd570> (a android.os.MessageQueue) at java.lang.Object.wait(Object.java:195) at android.os.MessageQueue.next(MessageQueue.java:144) at android.os.Looper.loop(Looper.java:110) at android.app.ActivityThread.main(ActivityThread.java:3742) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497) at dalvik.system.NativeStart.main(Native Method) "Binder Thread …

11
RTTI的价格是多少?
我了解使用RTTI会带来资源损失,但是它有多大?我看过的每个地方都只是说“ RTTI很昂贵”,但是它们都没有给出任何基准或定量的数据保护内存,处理器时间或速度。 那么,RTTI到底有多贵?我可能会在只有4MB RAM的嵌入式系统上使用它,因此每一位都很重要。 编辑:根据S. Lott的回答,如果我包括我实际在做的事情会更好。 我正在使用一个类来传递不同长度的数据,并且可以执行不同的操作,因此仅使用虚函数很难做到这一点。似乎使用了一些dynamic_cast s可以通过允许不同的派生类通过不同的级别传递而仍然允许它们采取完全不同的操作来解决此问题。 据我了解,dynamic_cast它使用RTTI,所以我想知道在有限的系统上使用RTTI的可行性。
152 c++  performance  rtti 

19
Java矩阵数学库的性能?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我们正在计算某种其运行时受矩阵运算约束的东西。(如果感兴趣,请在下面提供一些详细信息。)这种经历提示了以下问题: 人们对矩阵数学的Java库的性能(例如,乘法,逆运算等)是否有经验?例如: 贾玛 小马 Apache Commons数学 我搜索后什么也没找到。 我们的速度比较细节: 我们正在使用Intel FORTRAN(ifort(IFORT)10.1 20070913)。我们已经使用Apache Commons Math 1.2矩阵操作在Java(1.6)中重新实现了它,并且它同意其所有准确性。(我们有使用Java的理由。)(Java加倍,Fortran real * 8)。Fortran:6分钟,Java 33分钟,同一台计算机。jvisualm性能分析显示在RealMatrixImpl。{getEntry,isValidCoordinate}上花费了很多时间(在未发布的Apache Commons Math 2.0中似乎消失了,但是2.0并没有更快)。Fortran使用Atlas BLAS例程(dpotrf等)。 显然,这可能取决于我们使用每种语言编写的代码,但是我们认为大部分时间都在等效的矩阵运算中。 在其他一些不涉及库的计算中,Java的运行速度并不慢,有时甚至快得多。
151 java  math  matrix  performance 

4
有人实际上有效地实施了斐波那契堆吗?
你们中有没有人实施过斐波那契堆?几年前,我这样做了,但是比使用基于数组的BinHeaps要慢几个数量级。 那时,我认为这是一门宝贵的课程,说明研究并不总是像它声称的那样好。但是,许多研究论文声称其算法基于使用斐波那契堆的运行时间。 您是否曾经设法产生有效的实施方案?还是您使用的数据集如此之大,以至于斐波那契堆更有效?如果是这样,一些细节将不胜感激。


1
对于Python 3.x整数,比位移快两倍?
我正在查看sorted_containers的来源,很惊讶地看到这一行: self._load, self._twice, self._half = load, load * 2, load >> 1 这load是整数。为什么在一个位置使用位移,而在另一位置使用乘法?移位可能比整数除以2快,但这是合理的,但是为什么不还用移位代替乘法呢?我对以下情况进行了基准测试: (时间,分) (班次,班次) (时间,班次) (平移,除法) 并发现#3始终比其他替代方法快: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x = random.randint(10 ** 3, 10 ** 6) def test_naive(): a, b, …

10
在大数据表中替换NA的最快方法
我有一个很大的data.table,许多缺失值分散在整个〜200k行和200列中。我想将那些NA值尽可能有效地重新编码为零。 我看到两个选项: 1:转换为data.frame,并使用类似以下内容 2:某种很酷的data.table子设置命令 我将对类型1的高效解决方案感到满意,将其转换为data.frame然后再转换为data.table不会花费太长时间。

9
外键是否可以提高查询性能?
假设我有2个表格,产品和产品类别。两个表在CategoryId上都有关系。这就是查询。 SELECT p.ProductId, p.Name, c.CategoryId, c.Name AS Category FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE c.CategoryId = 1; 当我创建执行计划时,表ProductCategories会执行群集索引查找,这与预期的一样。但是对于表Products,它执行集群索引扫描,这使我感到怀疑。为什么FK不能帮助提高查询性能? 因此,我必须在Products.CategoryId上创建索引。当我再次创建执行计划时,两个表都执行索引查找。并且估计的子树成本大大降低了。 我的问题是: 除了FK有助于关系约束之外,它还有其他用途吗?它会提高查询性能吗? 是否应该在所有表的所有FK列(如Products.CategoryId)上创建索引?

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.