Questions tagged «performance»

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

8
如何快速清除JavaScript对象?
使用JavaScript数组,我可以通过一次分配将其重置为空状态: array.length = 0; 这使数组“出现”为空,可以重用,据我所知,这是一个“操作”,即恒定的时间。 有类似的方法可以清除JS对象吗?我知道我可以迭代其字段以将其删除: for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } } 但这具有线性复杂性。 我还可以扔掉该对象并创建一个新对象: obj = {}; 但是,新对象的“混杂”创建会导致IE6上的垃圾回收问题。(如此处所述)


1
将双精度整数舍入为32位int的快速方法
在阅读Lua的源代码时,我注意到Lua使用a将a macro舍double入为32位int。我提取了macro,它看起来像这样: union i_cast {double d; int i[2]}; #define double2int(i, d, t) \ {volatile union i_cast u; u.d = (d) + 6755399441055744.0; \ (i) = (t)u.i[ENDIANLOC];} 这里ENDIANLOC定义为endianness,0对于小端,1对于大端。Lua会小心处理字节顺序。t代表整数类型,例如int或unsigned int。 我做了一些研究,有一个更简单的格式macro使用了相同的想法: #define double2int(i, d) \ {double t = ((d) + 6755399441055744.0); i = *((int *)(&t));} 或采用C ++样式: inline int double2int(double d) { …

8
Python:查找表的列表与字典
我需要在某种类型的查询表中放入大约1000万个值,所以我想知道列表或字典哪个更有效? 我知道您可以为这两种方法执行以下操作: if something in dict_of_stuff: pass 和 if something in list_of_stuff: pass 我的想法是,该字典将更快,更高效。 谢谢你的帮助。 编辑1 我正在尝试做的更多信息。 欧拉问题92。我正在查找表,以查看所计算的值是否已全部准备好。 编辑2 查找效率。 编辑3 没有与值相关的值...那么集合会更好吗?

3
SSL施加了多少开销?
我知道没有一个简单而准确的答案,但是对于SSL加密开销与未加密套接字通信而言,是否存在通用的数量级估计近似值?我只在谈论通讯处理和连线时间,而不是在计算应用程序级别的处理。 更新资料 关于HTTPS和HTTP存在一个问题,但我有兴趣在堆栈中寻找更低的位置。 (我更换了那句“量级”以避免混淆,我用它作为非正式的术语,而不是在正规CompSci意义当然,如果我。有正式的意思是,作为一个真正的怪胎我会一直思考的二进制,而不是十进制!;-) 更新资料 根据评论中的请求,假设我们正在通过持久连接讨论大小合适的消息(范围为1k-10k)。因此,连接设置和数据包开销不是重要问题。

7
如何在C ++中“返回对象”?
我知道标题听起来很耳熟,因为有许多类似的问题,但是我要问的是问题的另一个方面(我知道将事物放在堆栈上并将它们放在堆上的区别)。 在Java中,我总是可以返回对“本地”对象的引用 public Thing calculateThing() { Thing thing = new Thing(); // do calculations and modify thing return thing; } 在C ++中,要做类似的事情,我有2个选择 (1)每当需要“返回”对象时,我都可以使用引用 void calculateThing(Thing& thing) { // do calculations and modify thing } 然后像这样使用它 Thing thing; calculateThing(thing); (2)或者我可以返回指向动态分配对象的指针 Thing* calculateThing() { Thing* thing(new Thing()); // do calculations and modify …

6
如何在SQL中有效地计算列值的出现?
我有一张学生桌: id | age -------- 0 | 25 1 | 25 2 | 23 我想查询所有学生,并增加一列来统计有多少学生年龄相同: id | age | count ---------------- 0 | 25 | 2 1 | 25 | 2 2 | 23 | 1 最有效的方法是什么?我担心子查询会很慢,我想知道是否有更好的方法。在那儿?
166 sql  performance 

4
PostgreSQL COUNT(DISTINCT…)非常慢
我有一个非常简单的SQL查询: SELECT COUNT(DISTINCT x) FROM table; 我的表大约有150万行。该查询运行缓慢。大约需要7.5秒,而 SELECT COUNT(x) FROM table; 大约需要435ms。有什么方法可以更改查询以提高性能?我试过分组并进行常规计数,以及在x上放置索引;两者具有相同的7.5s执行时间。

2
为什么HashSet <Point>比HashSet <string>慢得多?
我想存储一些像素位置而不允许重复,所以首先想到的是HashSet&lt;Point&gt;或类似的类。但是,与之相比,这似乎很慢HashSet&lt;string&gt;。 例如,此代码: HashSet&lt;Point&gt; points = new HashSet&lt;Point&gt;(); using (Bitmap img = new Bitmap(1000, 1000)) { for (int x = 0; x &lt; img.Width; x++) { for (int y = 0; y &lt; img.Height; y++) { points.Add(new Point(x, y)); } } } 大约需要22.5秒。 尽管以下代码(出于明显的原因,这不是一个很好的选择)仅花费1.6秒: HashSet&lt;string&gt; points = new HashSet&lt;string&gt;(); using (Bitmap …

1
Bluebird的util.toFastProperties函数如何使对象的属性“快速”?
在Bluebird的util.js文件中,它具有以下功能: function toFastProperties(obj) { /*jshint -W027*/ function f() {} f.prototype = obj; ASSERT("%HasFastProperties", true, obj); return f; eval(obj); } 由于某种原因,在return函数之后有一条语句,我不确定为什么会在其中。 同样,这似乎是故意的,因为作者已对此发出了JSHint警告: “返回”后无法到达“评估”。(W027) 此功能的作用是什么?难道util.toFastProperties真的让一个对象的属性“快”? 我已经在Bluebird的GitHub存储库中搜索了源代码中的任何注释或问题列表中的解释,但找不到任何注释。

6
Scala的懒惰val的(隐藏)成本是多少?
Scala的一个方便功能是lazy val,其中a的求值val被延迟到必要时(首次访问时)。 当然,lazy val必须有一些开销-Scala必须跟踪某个值是否已经被评估并且评估必须同步,因为多个线程可能会尝试同时首次访问该值。 -的确切成本是多少lazy val-是否存在与a相关联的隐藏布尔标志lazy val以跟踪是否已被评估,确切地同步了什么,还有更多成本吗? 另外,假设我这样做: class Something { lazy val (x, y) = { ... } } 这是就等于拥有两个独立的lazy val小号x和y还是我得到的开销只有一次,一对(x, y)?

17
如何处理缓慢的SecureRandom生成器?
如果您想要Java中具有加密强度的随机数,请使用SecureRandom。不幸的是,SecureRandom可能会很慢。如果/dev/random在Linux上使用,它将阻止等待足够的熵建立。您如何避免性能下降? 有没有人使用罕见数学作为解决此问题的方法? 有人可以确认在JDK 6中已经解决了此性能问题吗?

3
为什么x ** 4.0比Python 3中的x ** 4快?
为什么x**4.0要比x**4?我正在使用CPython 3.5.2。 $ python -m timeit "for x in range(100):" " x**4.0" 10000 loops, best of 3: 24.2 usec per loop $ python -m timeit "for x in range(100):" " x**4" 10000 loops, best of 3: 30.6 usec per loop 我尝试更改所提高的力量以查看其作用方式,例如,如果我将x提高至10或16的力量,它会从30跳到35,但是如果我以浮点数提高10.0,那只是在移动大约24.1〜4。 我想这可能与浮点转换和2的幂有关,但我真的不知道。 我注意到在这两种情况下2的幂都更快,因为这些计算对于解释器/计算机而言更本机/更容易,所以我想。但尽管如此,浮子几乎没有动。2.0 =&gt; 24.1~4 &amp; 128.0 =&gt; 24.1~4 但 …

21
迪士尼的FastPass是否有效和/或有用的排队论
在迪士尼世界,他们使用称为Fastpass的系统为热门游乐设施创建第二条较短的路线。这个想法是,您可以在标准行中等待,通常需要等待一个小时以上,或者您可以获取FastPass,它允许您在指定的时间段(通常是几个小时后)返回,仅等待10分钟以内。使用FastPass一次只能“等待”一次乘车。 我一直在试图弄清这个概念背后的排队理论,但是我发现的唯一解释是,它旨在使人们脱颖而出并做一些可以带来额外收入(购物,饮食等)的事情。 这是为什么要实施FastPass,还是要解决一个真正的访客效率问题?是否有应用了类似逻辑的软件应用程序?是否有应采用类似逻辑的软件应用程序? 我看到在软件中实现类似功能的部分问题是它基于用户选择队列。为了使软件中的等待周期更快,我认为,如果要很好地应用此理论,就需要应用程序足够聪明,才能根据需要将人们放置在哪些队列中,而无需最终用户选择。

7
SQL JOIN vs IN性能?
在某些情况下,使用JOIN或IN将为我提供正确的结果...哪一种通常具有更好的性能,为什么?它在多大程度上取决于您正在运行的数据库服务器?(仅供参考,我正在使用MSSQL)

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.