Questions tagged «performance»

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


4
Eratosthenes算法的筛选时间复杂度
从维基百科: 该算法的复杂性是 O(n(logn)(loglogn))位运算。 你怎么到达的? 包含loglogn术语的复杂性告诉我在sqrt(n)某处。 假设我在前100个数字(n = 100)上运行筛子,假设将数字标记为复合数字需要固定的时间(数组实现),那么我们使用的次数mark_composite()将类似于 n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2) 并且要查找下一个质数(例如,7在除掉所有倍数为的数字后跳至5),操作数将为O(n)。 因此,复杂度为O(n^3)。你同意吗?



10
Visual Studio 2017在构建和调试过程中速度太慢
我刚刚在具有以下规格的PC上安装了Visual Studio 2017: 英特尔至强E5-1600 v3 @ 3.50 GHz处理器,16 GB RAM和Windows 10 Pro 64位操作系统。 尽管PC性能几乎是完美的,但我通常在Visual Studio 2017中遇到速度慢的问题,尤其是在构建和调试过程中。除此之外,有时我需要在“无响应”消息后重新启动它。 是否有针对此问题的Visual Studio 2017稳定解决方案?

5
Github应该用作javascript库的CDN吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 从CDN而不是您自己的服务器提供javascript库具有巨大的优势。服务器的工作量较少,CDN拥有比服务器更接近用户的副本的可能性,但最重要的是,您的用户的浏览器已经从该URL缓存了该副本。最后一个意味着每个人的总工作量减少,因此这显然是一个全面的胜利,而且我们(开发人员)依赖CDN来提供我们的JavaScript的可能性更大。 但是流行的javascript CDN(Google,Microsoft,其他?)仅托管少量文件。对于其他人,我们可以选择自己托管它们,或者...将源代码控制服务器用作一种CDN。Github或类似文件不太可能具有为全球服务而优化的地理分布文件缓存。但是,如果是通常的做法,那么用户的浏览器很有可能会对其进行缓存。仅当Github自愿自愿这样做时,将工作从服务器上的工作卸载到github的论点才有效。 那么,这是惯例吗?我们应该互相鼓励吗?Github介意吗?他们有官方政策吗?

5
EBP帧指针寄存器的用途是什么?
我是汇编语言的初学者,并且注意到编译器发出的x86代码即使在释放/优化模式下也可以将EBP寄存器用于其他用途时,通常也会保持帧指针。 我理解为什么帧指针可能使代码更易于调试,并且如果alloca()在函数中调用它可能是必需的。但是,x86的寄存器非常少,当其中一个寄存器足够用时,使用其中两个寄存器来保持堆栈帧的位置对我来说是没有意义的。为什么即使在优化/发布版本中也忽略帧指针还是​​一个坏主意?

6
剖析javascript执行的最佳方法是什么?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 是否有适用于javascript的良好分析器?我知道firebug对分析代码提供了一些支持。但是我想确定更大范围的统计数据。假设您正在构建大量的javascript代码,并且您想确定代码中实际上是什么瓶颈。首先,我想查看每个javascript函数和执行时间的配置文件统计信息。接下来将包括DOM函数。这与放慢速度的操作(如对渲染树的操作)相结合将是完美的。我认为,如果在我的代码,DOM准备或渲染树/视觉效果的更新中失去性能,将会给人留下很好的印象。 有什么接近我想要的吗?或者,要实现我所描述的大部分内容,最好的工具是什么?它将是通过配置文件功能增强的自编译浏览器以及JavaScript引擎吗?

13
C#vs C-巨大的性能差异
我发现C anc C#中相似代码之间存在巨大的性能差异。 C代码是: #include <stdio.h> #include <time.h> #include <math.h> main() { int i; double root; clock_t start = clock(); for (i = 0 ; i <= 100000000; i++){ root = sqrt(i); } printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC); } C#(控制台应用程序)为: using System; using System.Collections.Generic; using System.Text; namespace …
94 c#  c  performance 

4
如何配置我的Android应用程序?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 我需要找到Android应用程序中的瓶颈所在。 我可以使用哪些配置文件工具或技术?

5
Javascript何时使用原型
我想了解何时在js中使用原型方法。应该一直使用它们吗?还是在某些情况下不优选使用它们和/或导致性能下降? 在此站点上搜索js中命名空间的常用方法时,似乎大多数都使用了基于非原型的实现:简单地使用对象或函数对象来封装名称空间。 来自基于类的语言,很难不尝试画出相似之处,并认为原型就像“类”,而我提到的命名空间实现就像静态方法。

9
什么时候循环展开仍然有用?
我一直在尝试通过循环展开来优化一些对性能至关重要的代码(一种快速排序算法,在蒙特卡洛仿真中被称为百万次)。这是我要加快的内循环: // Search for elements to swap. while(myArray[++index1] < pivot) {} while(pivot < myArray[--index2]) {} 我尝试展开为以下内容: while(true) { if(myArray[++index1] < pivot) break; if(myArray[++index1] < pivot) break; // More unrolling } while(true) { if(pivot < myArray[--index2]) break; if(pivot < myArray[--index2]) break; // More unrolling } 这绝对没有区别,所以我将其改回了可读性更好的形式。我尝试循环展开时也有类似的经历。鉴于现代硬件上分支预测器的质量,何时展开循环仍然是有用的优化?

13
实体框架太慢。我有什么选择?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 我遵循了“不要过早优化”的口头禅,并使用实体框架对WCF服务进行了编码。 但是,我分析了性能,并且实体框架太慢了。(我的应用程序在大约1.2秒内处理了2条消息,而我正在重写的(旧版)应用程序同时执行5-6条消息。(旧版应用程序为其数据库访问调用了sprocs。) 我的分析指向Entity Framework,它占用了每条消息的大部分时间。 那么,我有什么选择? 有更好的ORM吗? (仅支持正常读取和写入对象并快速完成的操作。) 有没有办法使实体框架更快? (注意:当我说更快时,我的意思是从长远来看,而不是第一次通话。的消息。) 某些神秘的第三种选择,将帮助我提高服务速度。 注意:我的大多数数据库交互都是“创建和更新”。我很少选择和删除。

6
实体框架查询速度很慢,但是SqlQuery中的相同SQL速度很快
我看到一些非常奇怪的性能,它们与使用.NET Framework版本4的Entity Framework Code-First进行的非常简单的查询有关。LINQ2Entities查询如下所示: context.MyTables.Where(m => m.SomeStringProp == stringVar); 这将花费3000毫秒以上的时间来执行。生成的SQL看起来非常简单: SELECT [Extent1].[ID], [Extent1].[SomeStringProp], [Extent1].[SomeOtherProp], ... FROM [MyTable] as [Extent1] WHERE [Extent1].[SomeStringProp] = '1234567890' 通过Management Studio运行时,该查询几乎立即运行。当我更改C#代码以使用SqlQuery函数时,它将在5到10毫秒内运行: context.MyTables.SqlQuery("SELECT [Extent1].[ID] ... WHERE [Extent1].[SomeStringProp] = @param", stringVar); 因此,使用完全相同的SQL,在两种情况下,生成的实体都会进行更改跟踪,但是两者之间的性能差异很大。是什么赋予了?

8
数据库中电子邮件地址的最佳长度是多少?
这是查询的一部分,反映了EMAIL_ADDRESS列数据类型和属性: EMAIL_ADDRESS CHARACTER VARYING(20) NOT NULL, 但是,约翰·桑德斯(John Saunders)使用VARYING(256)。 这表明我不一定理解正确的变化。 据我了解,在我的情况下,电子邮件地址的长度为20个字符,而Jodn为256个字符。 约翰代码中的上下文 CREATE TABLE so."User" ( USER_ID SERIAL NOT NULL, USER_NAME CHARACTER VARYING(50) NOT NULL, EMAIL_ADDRESS CHARACTER VARYING(256) NOT NULL, // Here HASHED_PASSWORD so.HashedPassword NOT NULL, OPEN_ID CHARACTER VARYING(512), A_MODERATOR BOOLEAN, LOGGED_IN BOOLEAN, HAS_BEEN_SENT_A_MODERATOR_MESSAGE BOOLEAN, CONSTRAINT User_PK PRIMARY KEY(USER_ID) ); 我从未见过普通人使用的电子邮件地址超过20个字符。 …

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.