标签: execution-time

while(1) 与 for(;;) 中奇怪的内存使用情况

我有以下 2 个代码。

1:

$i = 0;
while(1)
{
    $i++;

    echo "big text for memory usage ";
    if ( $i == 50000 )
    break;
}

echo "<br />" . memory_get_usage();
Run Code Online (Sandbox Code Playgroud)

每次都会回响:1626464

2:

$i = 0;
for(;;)
{
    $i++;

    echo "big text for memory usage ";
    if ( $i == 50000 )
    break;
}

echo "<br />" . memory_get_usage();
Run Code Online (Sandbox Code Playgroud)

每次都会回响:1626656

有人可以解释两种不同内存使用之间的差异吗?即使它们那么小...

php performance execution-time

3
推荐指数
1
解决办法
3317
查看次数

我可以在哪里改进我的代码以缩短其执行时间?

HackerRank 的请求:

\n
\n

如果客户在特定日期的支出金额大于或等于 2\xc3\x97 客户在过去几天的平均支出,他们会向客户发送有关潜在欺诈的通知。银行不会向客户发送任何通知,直到他们至少拥有前几天的交易数据的跟踪数据。

\n

给定跟踪天数d和客户在n天期间的每日总支出,确定客户在所有n天内收到通知的次数。

\n
\n

我的代码可以解决问题,但是对于大型测试用例来说有时间限制。我的代码无法通过时间限制要求。我的代码实际上很短:

\n
from statistics import median\n\nfirst_multiple_input = input().rstrip().split()\nn = int(first_multiple_input[0])\nd = int(first_multiple_input[1])\nexpenditure = list(map(int, input().rstrip().split()))\ncount=0\nfor i in range(len(expenditure)-d):\n    if expenditure[d+i] >= 2*median(expenditure[i:d+i]) :\n        count+=1\nprint( count)\n
Run Code Online (Sandbox Code Playgroud)\n

请指出造成延误的原因以及如何改善。

\n

帮助理解代码的小测试用例:

\n
9 5                 expenditure[] size n =9, d = 5\n2 3 4 2 3 6 8 4 5   expenditure = [2, 3, 4, 2, 3, 6, 8, 4, 5]\n
Run Code Online (Sandbox Code Playgroud)\n

python execution-time

3
推荐指数
1
解决办法
309
查看次数

Word中的VBA:获取脚本执行时间

如何弄清我的VBA脚本执行所需的时间?我从PHP知道有一种类似microtime()的东西,它在脚本之前被调用一次,在脚本之后被调用一次,以便能够从该值计算出差值...

是否有等效的VBA?

execution-time word-vba

2
推荐指数
1
解决办法
1万
查看次数

计算查询php&Mysql的时间

我试图计算使用PHP脚本运行查询所需的时间:

例如:

$sql = "SELECT COUNT(*) FROM `order_items` LEFT JOIN `orders` ON `oi_o_id` = `o_id` WHERE `o_status` = 'completed' AND `oi_p_id` = '10' LIMIT 1";
$sqlStart = getMicroTime();
$result = mysql_query($sql);
$sqlEnd = getMicroTime();
$sqlTime = $sqlEnd - $sqlStart;

echo $sqlTime;

function getMicroTime() {
    list($msec, $sec) = explode(' ', microtime());
    return floor($sec / 1000) + $msec;
}
Run Code Online (Sandbox Code Playgroud)

这似乎在大多数时间都有效,但偶尔我会得到一个负值,例如-0.98840499995276.这怎么可能?有没有更好的方法来获得查询执行时间?

谢谢

php mysql execution-time

2
推荐指数
2
解决办法
5171
查看次数

PHP最长执行时间

在我的Plesk 11中,PHP 5.4.7.Apache/2.4.3系统,当我创建cron作业时,我从error.log文件中得到此错误.

[Tue Mar 19 21:33:18 2013] [warn] [client 88.44.55.66] mod_fcgid: read data timeout in 45 seconds
[Tue Mar 19 21:33:18 2013] [error] [client 88.44.55.66] Premature end of script headers: index.php
Run Code Online (Sandbox Code Playgroud)

所以我检查了执行时间:

echo ini_get('max_execution_time');
Run Code Online (Sandbox Code Playgroud)

我有这个价值: 1560000

它似乎不是超时问题,但我得到超时错误?

回答以后的参考:使用vim
编辑/etc/httpd/conf.d/fcgid.conf文件.
更改FcgidIOTimeout 45FcgidIOTimeout 600.
重启Apache.然后将解决快速CGI超时.

php apache mod-fcgid execution-time

2
推荐指数
2
解决办法
1万
查看次数

为什么这个递归C代码比迭代代码更快?

我总是被教导并且读取递归方法比迭代方法慢,因为递归需要分配新的堆栈帧.我记得这是这两者的明显区别之一.

但是,在下面的C程序中,我发现递归函数比迭代函数更快.

/****Bubble Sort (by iteration)****/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

/****Bubble Sort Function declaration****/
void sort(int *,int);

/****Main Function****/
int main()
   {
    int n,*arr,i;
    float exetime;
    clock_t cstart,cend=0;

    printf("Enter the number of elements: ");
    scanf("%d",&n);

    arr=malloc(n*sizeof(int));

    printf("Enter the array elements: ");
    for(i=0;i<n;i++)
        scanf("%d",&arr[i]);

    cstart=clock(); //starting time
    for(i=0;i<10000;i++)
    sort(arr,n);
    cend=clock();   //end time

    exetime=(float)(cend-cstart)/CLOCKS_PER_SEC;
    printf ("%.4f \xC2\xB5sec\n",exetime*100);

    for(i=0;i<n;i++)
    printf("%-2d",arr[i]);

    free(arr);
    return 0;
   }

/****Bubble Sort Function****/
void sort(int *arr,int n)
    {
     int i,j,temp;

      for(i=0;i<=n-2;i++)

        for(j=0;j<=n-2-i;j++)               

            if(arr[j+1]<arr[j])      
              {                    
               temp=arr[j+1];
               arr[j+1]=arr[j];
               arr[j]=temp;
              } 
    }                                                                          
Run Code Online (Sandbox Code Playgroud)

输出: …

c sorting iteration recursion execution-time

2
推荐指数
1
解决办法
879
查看次数

乘法是否需要单位时间?

我有以下问题

在什么情况下可以将乘法视为单位时间运算?

但我认为乘法总是被认为是单位时间.我错了吗?

algorithm complexity-theory multiplication time-complexity execution-time

2
推荐指数
2
解决办法
509
查看次数

PHP脚本的运行时间比max_execution_time长得多?

PHP作为Apache模块运行.

该脚本以: ini_set('max_execution_time', 300);

它的作用基本上是连接数据库,进行大SELECT查询并循环结果,将它们写入文件并在每次写入后用显式回显"结果正常"flush();

没有sleep()电话.

这是一个由我的同事制作的"测试"脚本,用于备份目的,目的是运行几个小时!我以为我知道脚本执行时间限制,并认为他的脚本会在300秒后超时......但事实并非如此!

它是从Web浏览器调用的.页面保持打开状态,我们可以看到实时回显的结果.

为什么不超时?更奇怪的是,其中一项测试发出了" 超过300秒的最大执行时间 "但这至少在执行2小时后出现了!

这里发生了什么?在max_execution_time和flush()之间是否有一些需要理解的东西或者保持打开的浏览器窗口?

php timeout execution-time

2
推荐指数
1
解决办法
1060
查看次数

简单的更改会导致SQL查询执行时间大幅增加

我在我的Microsoft SQL Server(2012 Express)数据库上运行以下SQL查询,它工作正常,在不到一秒的时间内执行:

SELECT
  StringValue, COUNT(StringValue)
FROM Attributes
WHERE
  Name = 'Windows OS Version'
  AND StringValue IS NOT NULL
  AND ProductAssociation IN (
    SELECT ID
    FROM ProductAssociations
    WHERE ProductCode = 'MyProductCode'
  )
GROUP BY StringValue
Run Code Online (Sandbox Code Playgroud)

我在内部查询中添加了一个过滤器,它继续正常工作,返回的结果略少(如预期的那样),并且在不到一秒的时间内执行.

SELECT
  StringValue, COUNT(StringValue)
FROM Attributes
WHERE
  Name = 'Windows OS Version'
  AND StringValue IS NOT NULL
  AND ProductAssociation IN (
    SELECT ID
    FROM ProductAssociations
    WHERE ProductCode = 'MyProductCode'
    AND ID IN (
      SELECT A2.ProductAssociation
      FROM Attributes A2
      WHERE A2.Name = 'Is test' AND …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server execution-time sql-execution-plan

2
推荐指数
1
解决办法
818
查看次数

SUM()比SQL中的SELECT()花费更少的时间.这个怎么运作?

我有一个包含100万条记录的SQL表.我打电话的时候

SELECT *
   FROM [AdventureWorksDW2012].[dbo].[LotTable]
Run Code Online (Sandbox Code Playgroud)

完成查询需要13秒.

我运行以下查询来获取ID列的SUM().它包含包含加号和减号的随机数.

 SELECT SUM(NewestID)
   FROM LotTable
Run Code Online (Sandbox Code Playgroud)

这个查询花了500毫秒.要执行SUM(),SQL引擎应该读取值并对其应用一些操作.但它如何比SELECT()快速运行.背后的逻辑是什么?请参阅下面的图片.谢谢.

选择()和()

sql-server select sum execution-time

2
推荐指数
1
解决办法
390
查看次数