Tag: 性能

Mongodb聚合框架比map / reduce更快吗?

mongodb 2.2中引入的聚合框架是否比map / reduce有任何特殊的性能改进? 如果是,为什么以及如何和多less? (我已经为自己做了testing,性能几乎相同)

与SSE有效的4x4matrix向量乘法:水平添加和点积 – 有什么意义?

我试图find使用SSE与vector(u)进行4×4matrix(M)乘法运算的最有效的实现。 我的意思是Mu = v。 据我所知,有两个主要方法可以解决这个问题: method 1) v1 = dot(row1, u), v2 = dot(row2, u), v3 = dot(row3, u), v4 = dot(row4, u) method 2) v = u1 col1 + u2 col2 + u3 col3 + u4 col4. 方法2在SSE2中很容易实现。 方法一可以用SSE3中的水平加法指令或SSE4中的点积指令来实现。 但是,在我所有的testing中,方法2总是优于方法1。 一个地方,我虽然方法1将有一个优势是在一个3×4的matrix,例如仿射变换。 在这种情况下,最后一个点产品是不必要的。 但即使在这种情况下,4x4matrix上的方法2比3x4matrix上的方法1更快。 我发现在4x4matrix上唯一比方法2快的方法是在4x3matrix上的方法2。 那么水平添加和点积指令有什么意义呢? 实际上,点生产指令在这种情况下performance最差。 也许这与数据格式有关? 如果不能定义matrix是如何sorting的,那么转置是必要的,在这种情况下,方法1可能会更好? 见下面的一些代码。 __m128 m4x4v_colSSE(const __m128 cols[4], const […]

SQL中的where子句的顺序是重要的

比方说,我有一个名为PEOPLE的表有3列ID, LastName, FirstName ,这些列都没有索引。 LastName更加独特, FirstName不那么唯一。 如果我做2个search: select * from PEOPLE where FirstName="F" and LastName="L" select * from PEOPLE where LastName="L" and FirstName="F" 我的观点是第二个更快,因为更独特的标准( LastName )在where子句中首先出现,并且logging将被更有效地消除。 我不认为优化器是足够聪明的优化第一个SQL。 我的理解是正确的吗?

C#sorting和OrderBy比较

我可以使用Sort或OrderBy对列表进行sorting。 哪一个更快? 两个工作在相同的algorithm? List<Person> persons = new List<Person>(); persons.Add(new Person("P005", "Janson")); persons.Add(new Person("P002", "Aravind")); persons.Add(new Person("P007", "Kazhal")); 1。 persons.Sort((p1,p2)=>string.Compare(p1.Name,p2.Name,true)); 2。 var query = persons.OrderBy(n => n.Name, new NameComparer()); class NameComparer : IComparer<string> { public int Compare(string x,string y) { return string.Compare(x, y, true); } }

HashSet <T>与Dictionary <K,V> wrtsearch时间来查找是否存在一个项目

HashSet<T> t = new HashSet<T>(); // add 10 million items Dictionary<K, V> t = new Dictionary<K, V>(); // add 10 million items. 谁的.Contains方法会返回更快? 只是为了澄清,我的要求是我有1000万对象(以及真正的string),我需要检查它们是否存在于数据结构中。 我永远不会迭代。

如何阻止激烈的JavaScript循环冻结浏览器

我正在使用Javascriptparsing一个约3500个元素的XML文件。 我正在使用jQuery“each”函数,但我可以使用任何forms的循环。 问题在于循环执行时浏览器冻结了几秒钟。 停止冻结浏览器的最佳方法是什么? $(xmlDoc).find("Object").each(function() { //Processing here });

在MySQL vs PHP中进行计算

语境: 我们有一个PHP / MySQL应用程序。 计算的一些部分直接在SQL中完成。 例如:在过去24小时内创build的所有用户都将通过SQL查询(NOW() – 1天)返回, 有一位开发者和我之间正在进行辩论,我认为我们应该: A.将所有计算/代码/逻辑保存在PHP中,并将MySQL视为一个“愚蠢”的信息存储库 他的观点: B.根据什么更容易/更快来做混搭。 http://www.onextrapixel.com/2010/06/23/mysql-has-functions-part-5-php-vs-mysql-performance/ 我正在考虑可维护性的观点。 他正在看速度(正如文章指出的那样,MySQL中的一些操作速度更快)。 @ bob-the-destroyer @tekretic @OMG小马@mu太矮了@Tudor Constantin @tandu @Harley 我同意(而且非常明显)高效的WHERE子句属于SQL级别。 然而,像这样的例子: 使用NOW()计算24个周期 – 在SQL中select1天,以select在过去24小时内创build的所有用户? 返回大写的所有用户的名字和姓氏? 连接一个string? (想法,乡亲?) 清除属于SQL域的示例: 具体的WHEREselect 嵌套的SQL语句 订购/分拣 selectDISTINCT项目 计数行/项目

如何在Linux / Windows上测量CPU时间和挂钟时间?

我的意思是:如何测量我的CPU花费在函数执行上的时间以及运行我的函数所需的挂钟时间? (我对Linux / Windows以及x86和x86_64感兴趣)。 看看我想做什么(我在这里使用C ++,但我更喜欢C解决scheme): int startcputime, endcputime, wcts, wcte; startcputime = cputime(); function(args); endcputime = cputime(); std::cout << "it took " << endcputime – startcputime << " s of CPU to execute this\n"; wcts = wallclocktime(); function(args); wcte = wallclocktime(); std::cout << "it took " << wcte – wcts << " s of […]

在C#中检测networking连接速度和带宽使用情况

有没有办法来检测C#中的networking速度和带宽使用情况? 即使是开源组件的指针也是受欢迎的。 提前致谢。

外键是否提高查询性能?

假设我有两个表,产品和ProductCategories。 两个表在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; 当我创build执行计划时,ProductCategories表执行聚簇索引查找,这是期望的。 但是对于表产品,它执行集群索引扫描,这让我怀疑。 为什么FK不能帮助提高查询性能? 所以我必须在Products.CategoryId上创build索引。 当我再次创build执行计划时,两个表都执行索引查找。 估计的子树成本大大降低了。 我的问题是: 除了FK有助于关系约束,它还有其他用处吗? 它提高了查询性能吗? 我应该在所有表中的所有FK列(喜欢Products.CategoryId)上创build索引吗?