PHP
$totalTimeFunction=0;
function f1()
{
$t1=microtime(true);
for($i=0;$i<900;$i++)
{}
$t2=microtime(true);
$p=($t2-$t1);
$GLOBALS['totalTimeFunction']+=$p;
}
$t1=microtime(true);
f1();
$t2=microtime(true);
$p=($t2-$t1);
echo 'OutFunction='.$p."\n";
echo 'inFunction='.$GLOBALS['totalTimeFunction']."\n";
outFunction が inFunction より大きいのはなぜですか?
outFunction が inFunction と等しくないのはなぜですか?
私の実際の関数では、データベースに接続して多くの計算を行います... inFunction と outFunction の時間差は 10 秒ですか?(ajax のタイムラインは outFunction 時間とほぼ同じです)
実際の関数を編集 します (テーブル コンテンツには 100,000 レコードがあり、100 回呼び出します。inFunction と outFunction の差は 10 秒です)
$contentTable=array();
function getNameTask($id)
{
$t=microtime(true);
if(empty($GLOBALS['contentTable']))
{
$baseClass = new MsDatabase();
$query = "select CON_VALUE,CON_ID,CON_CATEGORY from content where CON_LANG='fa' and (CON_CATEGORY='TAS_TITLE' or CON_CATEGORY='PRO_TITLE' )";
$GLOBALS['contentTable']= $baseClass->query($query,WF_WORKFLOW_DB_NAME_MARKAZE);
}
foreach($GLOBALS['contentTable'] as $R)
{
if(trim($R['CON_ID'])==trim($id) && $R['CON_VALUE']!='' && trim($R['CON_CATEGORY'])=='TAS_TITLE' ){
$t2=microtime(true);
$p=($t2-$t);
$GLOBALS['tt']+=$p;
return $R["CON_VALUE"];
}
}
return 0;
}