<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 기사의 내용과 관련이없는 사전 코드 부분</span></span><span>
</span><span><span class="hljs-comment">// 예를 들어,현재 시간의 간단한 출력</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 시간:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 기사 내용 부분:사용 방법을 설명하십시오 opcache_get_configuration 현재 기능을 빠르게보십시오 OPcache 실행 상태</span></span><span>
<span class="hljs-comment">/*
* OPcache 예 PHP 바이트 코드 캐시 확장,크게 향상 될 수 있습니다 PHP 스크립트 실행 효율성。
* 개발 및 운영 중,빨리 이해합니다 OPcache 현재 상태는 매우 중요합니다。
* PHP 내장 기능 opcache_get_configuration() 우리가 그것을 얻는 데 도움이 될 수 있습니다 OPcache 구성 정보 및 상태。
*/</span>
<span class="hljs-comment">/**
* 사용 opcache_get_configuration 확인하다 OPcache 현재 실행 상태에 대한 단계:
*
* 1. 서버가 활성화되어 있는지 확인하십시오 OPcache 펼친
* 2. 통과하다 opcache_get_configuration() 구성 정보를 얻으십시오
* 3. 구성 정보를 분석하십시오,캐시 크기에 중점을 둡니다、缓存사용情况、적중률 등
*/</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">showOpcacheStatus</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'opcache_get_configuration'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"OPcache 펼친未启用或当前 PHP 버전은이 기능을 지원하지 않습니다。"</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span>;
}
</span><span><span class="hljs-comment">// 얻다 OPcache 구성 및 상태 정보</span></span><span>
</span><span><span class="hljs-variable">$config</span></span><span> = </span><span><span class="hljs-title function_ invoke__">opcache_get_configuration</span></span><span>();
</span><span><span class="hljs-variable">$status</span></span><span> = </span><span><span class="hljs-title function_ invoke__">opcache_get_status</span></span><span>(</span><span><span class="hljs-literal">false</span></span><span>); </span><span><span class="hljs-comment">// false 스크립트 세부 정보가 표시되지 않습니다,효율성을 향상시킵니다</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$config</span></span><span> || !</span><span><span class="hljs-variable">$status</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"无法얻다 OPcache 구성 또는 상태 정보。"</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span>;
}
</span><span><span class="hljs-comment">// 출력 구성 정보의 예</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h2>OPcache 구성 정보</h2>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<ul>"</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$config</span></span><span>[</span><span><span class="hljs-string">'directives'</span></span><span>] </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<li><b>"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>) . </span><span><span class="hljs-string">":</b> "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">htmlspecialchars</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>) . </span><span><span class="hljs-string">"</li>"</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"</ul>"</span></span><span>;
</span><span><span class="hljs-comment">// 출력 상태 정보의 예</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h2>OPcache 실행 상태</h2>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<ul>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<li><b>缓存사용大小:</b> "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">formatBytes</span></span><span>(</span><span><span class="hljs-variable">$status</span></span><span>[</span><span><span class="hljs-string">'memory_usage'</span></span><span>][</span><span><span class="hljs-string">'used_memory'</span></span><span>]) . </span><span><span class="hljs-string">" / "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">formatBytes</span></span><span>(</span><span><span class="hljs-variable">$status</span></span><span>[</span><span><span class="hljs-string">'memory_usage'</span></span><span>][</span><span><span class="hljs-string">'size'</span></span><span>]) . </span><span><span class="hljs-string">"</li>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<li><b>캐시 조각:</b> "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-variable">$status</span></span><span>[</span><span><span class="hljs-string">'memory_usage'</span></span><span>][</span><span><span class="hljs-string">'wasted_percentage'</span></span><span>], </span><span><span class="hljs-number">2</span></span><span>) . </span><span><span class="hljs-string">"%</li>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<li><b>캐시 적중률:</b> "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">calculateHitRate</span></span><span>(</span><span><span class="hljs-variable">$status</span></span><span>) . </span><span><span class="hljs-string">"%</li>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<li><b>캐시 된 스크립트 수:</b> "</span></span><span> . </span><span><span class="hljs-variable">$status</span></span><span>[</span><span><span class="hljs-string">'opcache_statistics'</span></span><span>][</span><span><span class="hljs-string">'num_cached_scripts'</span></span><span>] . </span><span><span class="hljs-string">"</li>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<li><b>총 요청 수:</b> "</span></span><span> . </span><span><span class="hljs-variable">$status</span></span><span>[</span><span><span class="hljs-string">'opcache_statistics'</span></span><span>][</span><span><span class="hljs-string">'num_requests'</span></span><span>] . </span><span><span class="hljs-string">"</li>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"</ul>"</span></span><span>;
}
<span class="hljs-comment">/**
* 더 친숙한 단위로 바이트 형식
*/</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">formatBytes</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$bytes</span></span></span><span>) {
</span><span><span class="hljs-variable">$units</span></span><span> = [</span><span><span class="hljs-string">'B'</span></span><span>, </span><span><span class="hljs-string">'KB'</span></span><span>, </span><span><span class="hljs-string">'MB'</span></span><span>, </span><span><span class="hljs-string">'GB'</span></span><span>];
</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$bytes</span></span><span> >= </span><span><span class="hljs-number">1024</span></span><span> && </span><span><span class="hljs-variable">$i</span></span><span> < </span><span><span class="hljs-title function_ invoke__">count</span></span><span>(</span><span><span class="hljs-variable">$units</span></span><span>) - </span><span><span class="hljs-number">1</span></span><span>) {
</span><span><span class="hljs-variable">$bytes</span></span><span> /= </span><span><span class="hljs-number">1024</span></span><span>;
</span><span><span class="hljs-variable">$i</span></span><span>++;
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-variable">$bytes</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>) . </span><span><span class="hljs-string">' '</span></span><span> . </span><span><span class="hljs-variable">$units</span></span><span>[</span><span><span class="hljs-variable">$i</span></span><span>];
}
<span class="hljs-comment">/**
* 计算캐시 적중률,단위 비율
*/</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">calculateHitRate</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$status</span></span></span><span>) {
</span><span><span class="hljs-variable">$hits</span></span><span> = </span><span><span class="hljs-variable">$status</span></span><span>[</span><span><span class="hljs-string">'opcache_statistics'</span></span><span>][</span><span><span class="hljs-string">'hits'</span></span><span>] ?? </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$misses</span></span><span> = </span><span><span class="hljs-variable">$status</span></span><span>[</span><span><span class="hljs-string">'opcache_statistics'</span></span><span>][</span><span><span class="hljs-string">'misses'</span></span><span>] ?? </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$requests</span></span><span> = </span><span><span class="hljs-variable">$hits</span></span><span> + </span><span><span class="hljs-variable">$misses</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$requests</span></span><span> === </span><span><span class="hljs-number">0</span></span><span>) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>((</span><span><span class="hljs-variable">$hits</span></span><span> / </span><span><span class="hljs-variable">$requests</span></span><span>) * </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
}
</span><span><span class="hljs-comment">// 상태를 표시하기 위해 함수를 호출합니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">showOpcacheStatus</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>