Optimization 哪些统计概念对分析有用?

Optimization 哪些统计概念对分析有用?,optimization,math,statistics,profiling,Optimization,Math,Statistics,Profiling,我一直想复习一下我的统计知识。统计数据似乎有助于分析代码。我这样说是因为貌相分析几乎总是涉及到我试图从大量数据中提取一些信息 有没有统计学方面的主题可以让我复习一下,以便更好地理解分析器的输出?如果你能给我指一本书或其他资源,可以帮助我更好地理解这些主题,那就有额外的积分。我不确定统计方面的书在评测方面是否有用。运行探查器应该为您提供一个函数列表以及在每个函数中花费的时间百分比。然后,您可以查看占百分比最多的一个,并查看是否可以以任何方式对其进行优化。重复,直到你的代码足够快。我觉得标准差或卡方

我一直想复习一下我的统计知识。统计数据似乎有助于分析代码。我这样说是因为貌相分析几乎总是涉及到我试图从大量数据中提取一些信息


有没有统计学方面的主题可以让我复习一下,以便更好地理解分析器的输出?如果你能给我指一本书或其他资源,可以帮助我更好地理解这些主题,那就有额外的积分。

我不确定统计方面的书在评测方面是否有用。运行探查器应该为您提供一个函数列表以及在每个函数中花费的时间百分比。然后,您可以查看占百分比最多的一个,并查看是否可以以任何方式对其进行优化。重复,直到你的代码足够快。我觉得标准差或卡方检验的范围不大。

我认为在这方面要理解的最重要的统计概念是。虽然通常在并行化的上下文中提及,但阿姆达尔定律有一个更一般的解释。以下是维基百科页面的摘录:

更严格地说,法律是相关的 从一个 对一种计算方法的改进 影响其中的一部分P 有改进的地方的计算 S的加速(例如,如果 改进可以加快30%的速度 计算,P将为0.3;如果 改进会使部分受到影响 两倍的速度,S将是2。)阿姆达尔 法律规定,总体上加速 应用改进将非常有用


如果您将MVC编程方法应用于PHP,则您需要分析以下内容:


统计数据很有趣,但对于性能调整,您不需要它,但一个简单的类比可能会给出这个想法

性能问题就像埋在一英亩雪下的一个对象(实际上可能是多个连接的对象),您试图通过用棍子随机探测来找到它。如果你的棍子碰到它几次,你就找到了它——它的确切尺寸并不重要。(如果你真的想更好地估计雪有多大,可以使用更多的探测器,但这不会改变雪的大小。)在找到雪之前,你必须探测雪的次数取决于雪的面积

一旦你找到它,你就可以把它拔出来。现在雪少了,但是雪下可能还有更多的物体。因此,通过更多的探测,您也可以找到并删除这些。通过这种方式,您可以继续进行,直到找不到更多可以删除的内容为止

在软件中,雪花是时间,探测是对调用堆栈进行随机时间采样。通过这种方式,可以发现并消除多个问题,从而产生错误


统计与此无关。

我认为一个与统计和分析(您最初的问题)相关的概念非常有用,并且被一些人使用(您可以看到不时建议的技术),那就是在进行“微分析”时:许多程序员会聚集在一起大喊大叫“你不能进行微观分析,微观分析根本不起作用,太多的事情会影响你的计算。”

然而,只需运行n次分析,只保留x%的观察值,即中位数附近的观察值,因为中位数是一个“稳健统计”(与平均值相反),不受离群值的影响(离群值正是您在进行此类分析时不想考虑的值)


对于那些想对代码进行微评测的程序员来说,这无疑是一种非常有用的统计技术。

我所知道的关于评测的所有知识都是我刚刚在维基百科中读到的:-)但我确实对统计有相当多的了解。评测文章提到了采样和采样数据的统计分析。显然,统计分析将是一种非常有用的方法能够使用这些样本来开发一些关于性能的统计报表。假设你有一些性能度量,m,并且你对这些度量进行了1000次抽样。也可以说你知道一些关于产生m值的基本过程的信息。例如,如果m是一组随机变量的总和,则m可能是正态分布。如果m是一组随机变量的乘积,则分布可能是对数正态分布。依此类推

如果您不知道底层的分布,并且希望对性能进行比较,则可能需要所谓的非参数统计信息


总的来说,我会推荐任何关于统计推断(DeGroot)的标准文本,一本涵盖不同概率分布及其适用范围的文本(黑斯廷斯和皮科克),以及一本关于非参数统计(Conover)的书。希望这能有所帮助。

像往常一样,泽德·肖在统计和编程方面有一些见解,但他说得比我更为雄辩。

我最终就是这么做的,你可能是对的。不过,我还是想了解更多关于统计的知识,而这似乎是一个很好的尝试和实践的地方il是对的,虽然我主要关注的是行级别,而不是功能级别。(尼尔,我希望“时间百分比”指的是“总时间”,而不是“自我时间”,我希望你指的是“挂钟时间”,而不仅仅是CPU时间,因为随着软件变得越来越大,由于不必要的函数调用,时间浪费变得越来越多,其中一些是I/O。)不是真正的统计,是吗?@Neil:我真的不知道:-)维基百科说“统计是一门有效利用与个体群体或实验相关的数字数据的科学”-那么这不适用吗?@Eli确切地说-我没有看到任何“群体”“等式中的数据。@尼尔,恕我直言,如果这不是吹毛求疵,我不知道是什么。@Eli,a=pi*r*r统计数据吗?我建议不要。还有分歧!=吹毛求疵,所以
Application:
   Controller Setup time
   Model Setup time
   View Setup time
Database
   Query - Time
Cookies
   Name - Value
Sessions
   Name - Value