Questions tagged «performance»

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

10
是String.Contains()比String.IndexOf()快吗?
我有大约2000个字符的字符串缓冲区,需要检查缓冲区是否包含特定的字符串。 将针对每个Web请求在ASP.NET 2.0 Web应用程序中进行检查。 有人知道String.Contains方法是否比String.IndexOf方法执行得更好吗? // 2000 characters in s1, search token in s2 string s1 = "Many characters. The quick brown fox jumps over the lazy dog"; string s2 = "fox"; bool b; b = s1.Contains(s2); int i; i = s1.IndexOf(s2); 有趣的事实
111 c#  .net  asp.net  performance  string 

4
为什么pow(a,d,n)比a ** d%n快得多?
我正在尝试实施Miller-Rabin素数测试,并对为什么中号(〜7位数)要花这么长时间(> 20秒)感到困惑。我最终发现以下代码行是问题的根源: x = a**d % n (其中a,d和n都是相似的,但不相等的中号,**是幂运算符,并且%是模运算符) 然后,我尝试将其替换为以下内容: x = pow(a, d, n) 相比之下,它几乎是瞬时的。 对于上下文,这是原始功能: from random import randint def primalityTest(n, k): if n < 2: return False if n % 2 == 0: return False s = 0 d = n - 1 while d % 2 == …
110 python  performance  pypy 

9
SQL SELECT Speed Int与varchar
我正在创建表格,这让我感到奇怪。 如果我存储有品牌的汽车(例如宝马,奥迪等),如果将品牌存储为int或varchar会对查询速度产生任何影响。 也是 SELECT * FROM table WHERE make = 5 AND ...; 快/慢于 SELECT * FROM table WHERE make = 'audi' AND ...; 还是速度会大致相同?

16
Android-防止启动时出现白屏
众所周知,许多Android应用在首次Activity聚焦之前都会非常短暂地显示白屏。在以下情况下会出现此问题: 扩展全局Application类并在其中执行主要初始化的Android应用。该Application 对象总是在第一个对象之前创建Activity(这可以在调试器中观察到),因此这很有意义。这是我的案件延误的原因。 在初始屏幕之前显示默认预览窗口的Android应用。 设置android:windowDisablePreview = "true"显然在这里不起作用。我也无法将初始屏幕的父主题设置Theme.Holo.NoActionBar为此处所述,因为[不幸的是]我的初始屏幕使用了ActionBar。 同时,未扩展Application类的应用程序在启动时不会显示白屏。 问题是,理想情况下,在Application对象中执行的初始化需要在显示第一个对象之前进行Activity。所以我的问题是,如何在不使用Application对象的情况下在应用启动时执行这些初始化?我想可能使用Thread或Service? 这是一个有趣的问题。我无法以通常的方式绕过它(通过设置NoActionBar主题),因为可悲的是我的启动画面实际上ActionBar由于某种不相关的原因而出现故障。 注意: 我已经提到以下问题: 如何在应用启动时修复白屏? Android初始画面是白色的吗? 闪屏前的白屏 Android应用启动时为白色背景 为什么开始在Android中运行应用程序时出现白屏1秒钟? 参考文献: 模式–启动屏幕。 品牌启动画面:Android的新功能。 正确的飞溅屏幕。

8
SQL连接与SQL子查询(性能)?
我想知道我是否有类似这样的联接查询- Select E.Id,E.Name from Employee E join Dept D on E.DeptId=D.Id 和一个类似这样的子查询 - Select E.Id,E.Name from Employee Where DeptId in (Select Id from Dept) 当我考虑性能时,两个查询中的哪个查询会更快,为什么? 还有一段时间我应该优先选择另一个吗? 抱歉,这太琐碎了,之前问过,但是我对此感到困惑。另外,如果你们能建议我一些我可以用来衡量两个查询性能的工具,那将是很棒的。非常感谢!

4
我何时应该在代码中使用pandas apply()?
我已经看到许多有关使用Pandas方法的堆栈溢出问题的答案apply。我还看到用户在他们的下面发表评论,说“ apply缓慢,应避免使用”。 我已经阅读了许多有关性能的文章,这些文章解释apply得很慢。我还在文档中看到了关于免除apply传递UDF的便捷功能的免责声明(现在似乎找不到)。因此,普遍的共识是,apply应尽可能避免。但是,这引起了以下问题: 如果apply太糟糕了,那为什么在API中呢? 我应该如何以及何时使代码apply免费? 在任何情况下apply都有良好的情况(比其他可能的解决方案更好)吗?

10
为什么Go这么慢(与Java相比)?
我们可以从2010年的计算机语言基准游戏中看到: Go平均比C慢10倍 Go比Java慢3倍! 考虑到Go编译器会生成要执行的本机代码,这怎么可能? Go的编译器不成熟?还是Go语言存在一些内在问题? 编辑: 大多数答案都否认Go语言的内在缓慢性,声称问题出在不成熟的编译器中。 因此,我进行了一些自己的测试来计算斐波那契数:迭代算法在Go(freebsd,6g)中以与sameC(带有O3选项)相同的速度运行。迟钝的递归代码在Go中的运行2 times速度比在C语言中运行的慢(使用-O3选项;使用-O0-相同)。但是我还没有看到基准测试中出现10倍的下降。

7
C ++中的异常如何工作(在幕后)
我一直看到人们说例外情况很慢,但我从未见过任何证据。因此,我将询问异常在后台如何工作,而不是询问它们是否存在,以便我可以决定何时使用它们以及它们是否缓慢。 据我所知,异常与执行多次返回相同,不同之处在于它还会在每次返回之后检查是否需要执行另一个操作或停止操作。如何检查何时停止返回?我猜有第二个堆栈保存异常的类型和堆栈位置,然后它会返回直到到达那里。我还猜测第二个堆栈唯一碰到的是一次掷球和每次尝试/接球。AFAICT使用返回码实施类似行为将花费相同的时间。但这只是一个猜测,所以我想知道真正发生了什么。 异常如何真正起作用?

29
如何提高Netbeans的性能?
有没有一种真正的方法来使Netbeans加载和工作更快? 当您编码一段时间后,它太慢并且会变得更糟。它吃光了我所有的RAM。 我在Windows计算机上,尤其是Windows Server 2008 Datacenter Edition x64、4Gb RAM,3Ghz Core 2 Duo处理器等。我正在使用x64 JDK。我使用NOD32防病毒软件,因为它对我而言是最佳的计算机性能。 在任务管理器中,netbeans.exe仅显示不超过20 Mb,java.exe则显示不超过600Mb。 我的项目是一个J2EE Web应用程序,有500多个类,仅不包括项目库(外部)。当我说慢时,我的意思是3、4、5分钟或更长时间的Netbeans被冻结了。 如果要读取NetBeans的所有文件以获取错误警告,svn状态等文件的状态,我的项目对Netbeans来说是否太大?我可以禁用所有这些吗?是否可以将其设置为仅在打开文件时扫描? 打开所有工具后,我的CPU使用率通常为30%,我的意思是Netbeans,MS SQL Manager,记事本,XMLSpy,任务管理器,Delphi,VirtualBox。Netbeans比我的虚拟化系统占用更多的RAM。 在Linux中,与在同一台计算机(Ubuntu 8.04 x64)中的Windows一样慢。 Netbeans团队确实提高了启动速度,但是当它打开时,它开始缓存所有内容。 我使用了一些JVM参数来设置较高的内存使用率,而其他一些则: "C:\Program Files\NetBeans Dev\bin\netbeans.exe" -J-Xms32m -J-Xmx512m -J-Xverify:none -J-XX:+CMSClassUnloadingEnabled 但是它仍然很慢。

3
静态方法与实例方法的性能
我的问题与静态方法与实例方法的性能特征及其可伸缩性有关。对于这种情况,假设所有类定义都在单个程序集中,并且需要多个离散的指针类型。 考虑: public sealed class InstanceClass { public int DoOperation1(string input) { // Some operation. } public int DoOperation2(string input) { // Some operation. } // … more instance methods. } public static class StaticClass { public static int DoOperation1(string input) { // Some operation. } public static int DoOperation2(string …


3
为什么快速整数类型比其他整数类型快?
在ISO / IEC 9899:2018(C18)中,在7.20.1.3中进行了规定: 7.20.1.3最快的最小宽度整数类型 1下列每个类型都指定一个整数类型,该类型通常最快(268)以与至少具有指定宽度的所有整数类型一起使用。 2 typedef名称int_fastN_t指定宽度至少为N uint_fastN_t的最快有符号整数类型。typedef名称指定宽度至少为N 的最快无符号整数类型。 3需要以下类型: int_fast8_t,int_fast16_t,int_fast32_t,int_fast64_t, uint_fast8_t,uint_fast16_t,uint_fast32_t,uint_fast64_t 此表单的所有其他类型都是可选的。 268)不能保证指定类型在所有目的上都是最快的;如果实现没有明确的理由选择一种类型而不是另一种类型,它将仅选择一些满足符号性和宽度要求的整数类型。 但是没有说明为什么这些“快速”整数类型更快。 为什么这些快速整数类型比其他整数类型快? 我用C ++标记了这个问题,因为快速整数类型在C ++ 17的头文件中也可用cstdint。不幸的是,在ISO / IEC 14882:2017(C ++ 17)中没有关于其解释的章节; 我在问题正文中以其他方式实施了该部分。 信息:在C中,它们在的头文件中声明stdint.h。
107 c++  c  performance  types  int 

9
在C ++类中使用虚拟方法的性能成本是多少?
C ++类(或其任何父类)中至少有一个虚拟方法意味着该类将具有一个虚拟表,并且每个实例将具有一个虚拟指针。 因此,内存成本非常明显。最重要的是实例上的内存开销(特别是如果实例很小,例如,如果它们仅打算包含一个整数:在这种情况下,每个实例中都有一个虚拟指针可能会使实例的大小增加一倍。)虚拟表所用的内存空间,我想它与实际方法代码所用的空间相比通常可以忽略不计。 这让我想到了一个问题:将方法虚拟化是否有可衡量的性能成本(即速度影响)?在每次调用方法时,都会在运行时在虚拟表中进行查找,因此,如果对这个方法的调用非常频繁,并且如果此方法很短,那么性能可能会受到影响吗?我猜这取决于平台,但是有人在运行一些基准测试吗? 我问的原因是,我遇到了一个错误,该错误恰好是由于程序员忘记定义虚拟方法而引起的。这不是我第一次看到这种错误。我想:我们为什么要添加虚拟关键字,而不是需要时取出时,我们绝对相信这是它的虚拟关键字没有必要?如果性能成本很低,我想我会在团队中简单推荐以下内容:只需在每个类中默认使每个方法都是虚拟的,包括析构函数,并且仅在需要时才将其删除。这听起来对您来说疯狂吗?

9
清除文件缓存以重复进行性能测试
我可以使用哪些工具或技术来删除缓存的文件内容,以防止性能结果出现偏差?我相信我需要完全清除或有选择地删除有关文件和目录内容的缓存信息。 我正在开发的应用程序是一个专用的压缩实用程序,预计将进行大量工作,以读取和写入操作系统最近未触及的,不太可能缓存其磁盘块的文件。 我希望消除重复执行分析不同策略以执行文件处理工作的任务时在IO时间中看到的可变性。 我主要对Windows XP的解决方案感兴趣,因为这是我的主要开发机器,但是我也可以使用linux进行测试,因此也对针对该环境的答案感兴趣。 我尝试了SysInternals CacheSet,但是单击“清除”不会导致重新读取我刚刚读过几次的文件的时间增加(在冷启动后恢复计时)。

6
为什么SSE标量sqrt(x)比rsqrt(x)* x慢?
我一直在Intel Core Duo上进行一些核心数学分析,在查看各种平方根方法时,我注意到了一些奇怪的事情:使用SSE标量运算,倒数平方根乘以它会更快获取sqrt,而不是使用本机sqrt操作码! 我正在用类似这样的循环进行测试: inline float TestSqrtFunction( float in ); void TestFunc() { #define ARRAYSIZE 4096 #define NUMITERS 16386 float flIn[ ARRAYSIZE ]; // filled with random numbers ( 0 .. 2^22 ) float flOut [ ARRAYSIZE ]; // filled with 0 to force fetch into L1 cache cyclecounter.Start(); for …

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.