【问题标题】:How can I predict memory usage and time based on historical values如何根据历史值预测内存使用情况和时间
【发布时间】:2014-12-13 00:46:11
【问题描述】:

我认为真的是一道数学题…… 我有一些电子表格输出的历史数据以及行数和列数。

我想做的是使用这些数据根据已知的行和列来预测峰值内存使用量和所用时间。

因此,如果不存在历史数据,则不会有预测。 1 或 2 个历史值将非常不准确,但我希望给定足够广泛的历史值,然后可以做出合理准确的预测?

我在 jsfiddle 上有一张桌子。任何帮助或想法将不胜感激。我真的不知道从哪里开始。

http://jsfiddle.net/JelbyJohn/kwje9chf/3/

<table class="table table-condensed">
</table>

【问题讨论】:

    标签: math memory statistics forecasting


    【解决方案1】:

    您可以安装 linear regression 模型。

    由于这是一个编程网站,这里有一些R代码:

    > d <- read.table("data.tsv", sep="\t", header=T)
    > summary(lm(log(Bytes.RAM) ~ log(Rows) + log(Columns), d))
    
    Call:
    lm(formula = log(Bytes.RAM) ~ log(Rows) + log(Columns), data = d)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -0.4800 -0.2409 -0.1618  0.1729  0.6827 
    
    Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
    (Intercept)  12.42118    0.61820  20.093 8.72e-09 ***
    log(Rows)     0.51032    0.09083   5.618 0.000327 ***
    log(Columns)  0.58200    0.07821   7.441 3.93e-05 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
    
    Residual standard error: 0.4052 on 9 degrees of freedom
    Multiple R-squared: 0.9062, Adjusted R-squared: 0.8853 
    F-statistic: 43.47 on 2 and 9 DF,  p-value: 2.372e-05 
    

    这个模型很好地解释了数据( 是 0.89),并提出了电子表格大小和内存使用之间的以下关系:

    Bytes.RAM = exp(12.42 + 0.51 * log(Rows) + 0.58 * log(Columns))
    

    可以使用类似的模型来预测执行时间(Seconds 列)。在那里,R² 是0.998

    【讨论】:

    • 这看起来很棒,尽管现在我有点过头了。我正在努力理解它。
    • 似乎我将其分解为两个有用的部分:1)基于源自...的常数的最终方程 2)常数的计算 这很有用,因为我可以写一个任务来尽可能频繁地定义/更新常量,并且显然在我运行方程时将使用最新的常量。这个方程很容易编程,但现在我必须弄清楚如何在 PHP 或 JQuery 中导出这些数字(抱歉没有提到我打算使用哪种语言)。我已经研究了 R,但如果可能的话,我想在 vanilla php 中执行此操作。
    • @Jelby-John:如果你用谷歌搜索“php 线性回归”,那应该会给你一些指导。
    • 我过去和现在都是。我在opensourcetutorials 找到了一篇关于自定义 PHP 类的好文章,但我也在考虑安装 R 并使用 shell_exec。我会反馈我的进展。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2014-10-29
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    相关资源
    最近更新 更多