PHP 는 기록 코드 실행 시간 패키지 클래스 인 스 턴 스 튜 토리 얼 을 실현 합 니 다.
본 고 는 phop 기록 코드 운행 시간 측정 에 관 한 내용 을 소개 하여 여러분 께 참고 학습 을 제공 합 니 다.일반적으로 성능 을 요구 하 는 코드 에는 테스트 코드 를 넣 어 계산한다.그러나 매번 microtime 을 써 야 합 니 다.end C start 가 너무 번 거 로 운 것 은 아 닙 니 다.그래서 간단하게 한 가지 유형 을 써 서 만 들 었 습 니 다.다음은 상세 한 소 개 를 살 펴 보 겠 습 니 다.
예제 코드
class TimeCost
{
private $cost = array();
private $record = array();
private $scale = 6;
public function __construct($scale = 6)
{
$this->cost = array();
$this->record = array();
$this->scale = $scale;
}
public function __toString()
{
return $this->getString();
}
/**
* start to cal time.
*
* @param mixed $key
*/
public function addCost($key)
{
$this->cost[$key] = microtime(true);
}
/**
* stop to cal time.
*
* @param mixed $key
*/
public function closeCost($key)
{
$cost = bcsub(microtime(true), $this->cost[$key], $this->scale);
if (in_array($key, array_keys($this->record))) {
$this->record[$key] = bcadd($cost, $this->record[$key], $this->scale);
} else {
$this->record[$key] = $cost;
}
return $cost;
}
public function getString($key = null)
{
if ($key) {
return "{$key}[{$this->record[$key]}]";
}
$str = '';
foreach ($this->record as $k => $v) {
$str .= "{$k}[{$v}]";
}
return $str;
}
}
사용법
$obj = new TimeCost();
$token = 'test_a';
$obj->addCost($token);
some_code();
$obj->closeCost($token);
$reslut = $obj->getString($token);
설명 하 다.1.시간 정밀도:기본 값 은 6 자리 입 니 다.충분 합 니 다.더 높 은 정 도 를 원 하 시 면 new 대상 에$scale 인 자 를 지정 하 실 수 있 습 니 다.
2.token:token 은 특정한 코드 를 표시 하기 위해 해당 하 는 결 과 는 key(token),value 의 형식 으로 record 배열 에 기록 합 니 다.
그래서 하나의 token 으로 addCost 와 closeClost 를 여러 번 진행 한 결과 가 누적 된다.
3.getString:token 을 전달 하면 token 에 대응 하 는 결 과 를 되 돌려 줍 니 다.기본적으로 record 의 모든 결 과 를 연결 합 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.