PHP 개발에서 realpath () 함수는 매우 일반적으로 사용되는 경로 해상도 기능입니다. 성능을 향상시키기 위해 PHP는 "RealPath 캐시"라고하는 RealPath () 호출 결과를 캐시합니다. 이 캐시를 관리하고보기위한 두 가지 주요 기능은 RealPath_Cache_Size 및 RealPath_Cache_Get 입니다. 이 기사는이 두 기능의 기능과 차이점을 소개하고 공동 사용에 대한 실용적인 팁을 공유합니다.
RealPath_Cache_Size () 는 현재 RealPath 캐시에서 사용하는 메모리 크기 (바이트)를 반환하는 매우 직관적 인 기능입니다.
<?php
echo realpath_cache_size();
?>
이 함수는 매개 변수를 허용하지 않으며 리턴 값은 정수이며 현재 RealPath 캐시의 총 발자국을 나타냅니다.
RealPath_Cache_Size () 와 달리 RealPath_Cache_Get () 함수는 캐시의 실제 내용을 반환합니다. 캐시의 모든 경로에 대한 자세한 정보 (예 : 경로의 실제 주소, 디렉토리, 만료 시간 등) 등의 자세한 정보를 포함합니다.
<?php
print_r(realpath_cache_get());
?>
반환 값은 연관 배열이고, 배열의 키는 캐시의 경로이고, 값은 다음 필드를 포함하는 배열입니다.
키 : 캐시 항목의 고유 식별자 (일반적으로 경로)
IS_DIR : 디렉토리입니다
RealPath : 진짜 길
만료 : 캐시 된 만료 시간 (타임 스탬프)
Array
(
[/var/www/html/index.php] => Array
(
[key] => /var/www/html/index.php
[is_dir] =>
[realpath] => /var/www/html/index.php
[expires] => 1716626500
)
)
특성 | RealPath_Cache_Size | realpath_cache_get |
---|---|---|
효과 | 캐시 크기를 반환합니다 | 캐시 된 콘텐츠로 돌아갑니다 |
반환 값 유형 | 정수 | 연관 배열 |
매개 변수 | 없음 | 없음 |
일반적인 용도 | 성능 모니터링/메모리 최적화 | 캐시 된 컨텐츠 디버그 |
RealPath_Cache_Size () 는 주로 성능 모니터링 또는 메모리 사용 분석에 사용되며 RealPath_Cache_Get ()는 경로 해상도 및 캐싱 문제를 디버깅하는 데 더 적합합니다.
개발 중에 RealPath_Cache_Size ()에 의해 반환 된 값이 지속적으로 증가하고 있음을 알게되면 RealPath_Cache_Get ()을 결합하여 어떤 경로가 캐시 된 지 확인할 수 있습니다. 다음 스크립트를 사용하여 정기적으로 모니터링하십시오.
<?php
echo "Cache size: " . realpath_cache_size() . " bytes\n";
print_r(realpath_cache_get());
?>
출력을 비교함으로써 불필요한 경로가 종종 구문 분석되어 캐시에 추가되는지 분석하십시오.
php.ini 에서 realpath_cache_size는 기본적으로 16k 입니다. 대규모 프로젝트의 경우이 값이 너무 작아 캐시 적중률이 감소 할 수 있습니다. 다음 코드를 사용 하여이 값을 확장 해야하는지 결정하는 데 도움이 될 수 있습니다.
<?php
$cache = realpath_cache_get();
$used = realpath_cache_size();
if ($used > 15000) {
echo "추가하는 것이 좋습니다realpath_cache_size가치,현재 사용됩니다 {$used} 바이트\n";
}
?>
경로 해상도 문제를 해결하기 위해 요구 , 포함 또는 file_exists를 사용하는 경우 지정된 경로가 캐시에 있는지 직접 확인할 수 있으며 Cache가 RealPath_Cache_Get () 을 통해 만료되었는지 여부를 확인할 수 있습니다. 예를 들어:
<?php
$path = '/var/www/html/config.php';
$cache = realpath_cache_get();
if (isset($cache[$path])) {
echo "이 경로는 캐시됩니다:\n";
print_r($cache[$path]);
} else {
echo "경로는 캐시 또는 만료되지 않습니다\n";
}
?>
이 방법은 기존 디버깅 방법보다 효율적이고 유익합니다.
동시 동시 시나리오에서 realpath_cache_size 의 값을 적절하게 증가 시키면 파일 시스템의 IO 작동을 효과적으로 줄일 수 있습니다.
프레임 워크 또는 대규모 프로젝트에서 경로 해상도 동작을 모니터링하고 최적화하기 위해 로깅과 함께 RealPath_cache_get ()을 사용하십시오.
RealPath_Cache_Get () 는 PHP에서 내부 캐시의 스냅 샷을 반환하며 성능은 SAPI (예 : CLI 및 FPM)에 따라 약간 다를 수 있습니다.
RealPath_Cache_Size () 및 RealPath_Cache_Get () 은 PHP 경로 캐싱 관리를위한 두 가지 강력한 도구입니다. 전자는 캐시의 용량에 초점을 맞추고 후자는 캐시의 특정 내용을 드러냅니다. 이 두 가지를 함께 사용하면 특히 대형 코드베이스 또는 프레임 워크를 조정할 때 PHP 프로젝트에서 경로 해상도 동작을보다 완전히 이해하고 최적화 할 수 있습니다.
공식 문서를 추가로 읽을 수 있습니다.
<?php
echo file_get_contents('https://www.gitbox.net/manual/en/function.realpath-cache-size.php');
?>
이 두 기능을 잘 활용하면보다 효율적이고 제어 가능한 PHP 응용 프로그램 시스템을 구축하는 데 도움이됩니다.