我有以下 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
有人可以解释两种不同内存使用之间的差异吗?即使它们那么小...
HackerRank 的请求:
\n\n\n如果客户在特定日期的支出金额大于或等于 2\xc3\x97 客户在过去几天的平均支出,他们会向客户发送有关潜在欺诈的通知。银行不会向客户发送任何通知,直到他们至少拥有前几天的交易数据的跟踪数据。
\n给定跟踪天数d和客户在n天期间的每日总支出,确定客户在所有n天内收到通知的次数。
\n
我的代码可以解决问题,但是对于大型测试用例来说有时间限制。我的代码无法通过时间限制要求。我的代码实际上很短:
\nfrom 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)\nRun Code Online (Sandbox Code Playgroud)\n请指出造成延误的原因以及如何改善。
\n帮助理解代码的小测试用例:
\n9 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]\nRun Code Online (Sandbox Code Playgroud)\n 如何弄清我的VBA脚本执行所需的时间?我从PHP知道有一种类似microtime()的东西,它在脚本之前被调用一次,在脚本之后被调用一次,以便能够从该值计算出差值...
是否有等效的VBA?
我试图计算使用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.这怎么可能?有没有更好的方法来获得查询执行时间?
谢谢
在我的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 45到FcgidIOTimeout 600.
重启Apache.然后将解决快速CGI超时.
我总是被教导并且读取递归方法比迭代方法慢,因为递归需要分配新的堆栈帧.我记得这是这两者的明显区别之一.
但是,在下面的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)
我有以下问题
在什么情况下可以将乘法视为单位时间运算?
但我认为乘法总是被认为是单位时间.我错了吗?
algorithm complexity-theory multiplication time-complexity execution-time
PHP作为Apache模块运行.
该脚本以: ini_set('max_execution_time', 300);
它的作用基本上是连接数据库,进行大SELECT查询并循环结果,将它们写入文件并在每次写入后用显式回显"结果正常"flush();
没有sleep()电话.
这是一个由我的同事制作的"测试"脚本,用于备份目的,目的是运行几个小时!我以为我知道脚本执行时间限制,并认为他的脚本会在300秒后超时......但事实并非如此!
它是从Web浏览器调用的.页面保持打开状态,我们可以看到实时回显的结果.
为什么不超时?更奇怪的是,其中一项测试发出了" 超过300秒的最大执行时间 "但这至少在执行2小时后出现了!
这里发生了什么?在max_execution_time和flush()之间是否有一些需要理解的东西或者保持打开的浏览器窗口?
我在我的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) 我有一个包含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()快速运行.背后的逻辑是什么?请参阅下面的图片.谢谢.