Tag: 性能

在Python中提高超大字典的性能

我发现,如果我在开头初始化一个空字典,然后在for循环中添加元素到字典中(大约110,000个键,每个键的值是一个列表,循环中也增加),速度降低为for循环去。 我怀疑问题是,字典在初始化时并不知道密钥的数量,而且它并没有做一些非常聪明的事情,所以也许存储冲突变得相当频繁,并且速度变慢了。 如果我知道键的数量,确切地说是那些键,是否有任何方式在Python中使字典(或哈希表)更有效地工作? 我隐约记得,如果你知道密钥,你可以巧妙地devise哈希函数(完美哈希?),并预先分配空间。

C#静态函数是否比非静态函数执行更好,超越了内存使用的减less?

我认为public或private static目标必须减less内存使用量,因为在内存中只有一个静态目标副本。 这似乎是因为一种方法是静态的,可能会使该方法成为CLR编译器进一步优化的一个潜在的点,超出了使用非静态函数的可能性。 只是一个脆弱的理论,所以我来问你们所有人。 static public或private方法提供了更多的性能优势,而不仅仅是减less内存使用量 (注意:我对那些谈论过早优化问题的反应并不感兴趣,当然这是我每天所遵循的合理build议,但这并不意味着有时候优化是不必要的(双重否定!)。让我放纵我的好奇心,至less)

为什么std :: pair比std :: tuple快

这里是testing的代码。 元组testing: using namespace std; int main(){ vector<tuple<int,int>> v; for (int var = 0; var < 100000000; ++var) { v.push_back(make_tuple(var, var)); } } 配对testing: #include <vector> using namespace std; int main(){ vector<pair<int,int>> v; for (int var = 0; var < 100000000; ++var) { v.push_back(make_pair(var, var)); } } 我通过Linux时间命令做了时间测量。 结果是: | | -O0 | -O2 | […]

最快的“Get Duplicates”SQL脚本

什么是一个快速SQL的例子,以获得与成千上万的logging数据集重复。 我通常使用像这样的东西: SELECT afield1, afield2 FROM afile a WHERE 1 < (SELECT count(afield1) FROM afile b WHERE a.afield1 = b.afield1); 但是这很慢。

哪个更快,更好,切换案例还是如果?

哪个更好,最快的方法是:如果还是切换? if(x==1){ echo "hi"; } else if (x==2){ echo "bye"; } switch(x){ case 1 … break; default; }

Java检查布尔值是否为空

你如何检查一个布尔值是否为空? 所以如果我知道“hideInNav”是空的。 我如何阻止它进一步执行? 像下面的东西似乎不工作,但为什么? boolean hideInNav = parent.getProperties().get("hideInNav", false); String hideNavigation = hideInNav != null ? hideInNav : "";

可见性之间的性能差异:隐藏和显示:无

我想简化我的jQuery Backbone.js Web应用程序中的东西。 一个这样的简化是我的菜单和对话框小部件的行为。 以前我在开始时创build了我的菜单的div盒,并使用display: none; opacity:0;来隐藏它们display: none; opacity:0; display: none; opacity:0; 。 当我需要一个菜单​​,我改变了它的样式display:block然后使用jQuery的ui位置实用程序来定位div框(因为元素与display:none不能定位),当它完成后,最后改变其风格为opacity:1 。 现在,我只想隐藏它们visibility:hidden ,当我需要一个,我使用位置实用程序,然后将样式更改为visibility:visible 。 当我开始使用这种新的方法时,在整个Web应用程序会话中,我将有大约10个div box被隐藏,但占据空间,而之前的div box则隐藏着display:none 。 我的新方法有什么意义? 它在任何方面影响浏览器性能?

为什么立方体比方块更快

我写了这个: var max = 0xffffff * 4; var step = 1 / max; function cube() { var result = 0.; for (var x = 0.; x < 1; x += step) { result += x * x * x; } return result; } function mul() { var result = 0.; for (var x = 0.; […]

如何优化读取和写入R中的matrix的子节(可能使用data.table)

TL; DR R中用于读取和写入非常大matrix列的子集的最快方法是什么? 我试图用data.table解决scheme,但需要一个快速的方式来提取一系列的列? 简答:操作的昂贵部分是分配。 因此,解决scheme是坚持使用matrix,并使用Rcpp和C ++来修改matrix。 下面有两个很好的答案,其中有些例子适用于其他问题,请务必阅读解决scheme中的免责声明! 滚动到问题的底部,了解更多的经验教训。 这是我的第一个堆栈溢出问题,我非常感谢你的时间在看,我很抱歉,如果我什么都没有留下。 我正在研究一个R包,其中我有一个性能瓶颈,从子集化和写入到matrix的某些部分(对统计学家来说,应用程序在处理每个数据点后更新足够的统计信息)。 单独的操作非常快,但它们的数量要求尽可能快。 这个想法的最简单版本是一个维度K乘以V的matrix,其中K一般在5到1000之间,V可以在1000到1000000之间。 set.seed(94253) K <- 100 V <- 100000 mat <- matrix(runif(K*V),nrow=K,ncol=V) 然后我们结束对列的一个子集进行计算并将其添加到完整的matrix中。 因此天真的看起来像 Vsub <- sample(1:V, 20) toinsert <- matrix(runif(K*length(Vsub)), nrow=K, ncol=length(Vsub)) mat[,Vsub] <- mat[,Vsub] + toinsert library(microbenchmark) microbenchmark(mat[,Vsub] <- mat[,Vsub] + toinsert) 因为这样做很多次,所以R的copy-on-change语义会很慢(但是看到下面的经验教训,在一些情况下实际上可以进行修改)。 对于我的问题,该对象不需要是matrix(我对这里所描述的区别非常敏感) 将一个matrix分配给data.table的一个子集 。 我总是想要整列,所以数据框的列表结构是好的。 我的解决scheme是使用Matthew Dowle的真棒data.table包。 写入可以使用set()非常快速地完成。 不幸的是,获得价值有点复杂。 我们必须使用= […]

什么是IACA,我如何使用它?

我发现了一个叫IACA(英特尔架构代码分析器)的有趣而强大的工具,但是我很难理解它。 我该怎么做,它有什么限制,我怎么能: 用它来分析C或C ++中的代码? 用它来分析x86汇编中的代码?