<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဆောင်းပါး၏အကြောင်းအရာနှင့်မသက်ဆိုင်သော Pre-code အပိုင်း</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 လျင်မြန်စွာလက်ရှိ function ကိုကြည့်ပါ OPcache လည်ပတ်မှုအခြေအနေ</span></span><span>
<span class="hljs-comment">/*
* OPcache ဟုတ်ကဲ့ PHP bytecode cache တိုးချဲ့မှု,အလွန်တိုးတက်လာနိုင်ပါတယ် PHP Script Execution ထိရောက်မှု。
* ဖွံ့ဖြိုးရေးနှင့်စစ်ဆင်ရေးကာလအတွင်း,လျင်မြန်စွာနားလည် OPcache လက်ရှိအခြေအနေသည်အလွန်အရေးကြီးသည်。
* PHP built-in လုပ်ဆောင်ချက်များကို opcache_get_configuration() ကျွန်တော်တို့ကိုရကူညီပေးနိုင်ပါတယ် OPcache configuration သတင်းအချက်အလက်နှင့် status ကို。
*/</span>
<span class="hljs-comment">/**
* အသုံးပြု opcache_get_configuration စစ်ဆေး OPcache လက်ရှိအပြေးပြည်နယ်မှခြေလှမ်းများ:
*
* 1. ဆာဗာကိုဖွင့်ထားကြောင်းအတည်ပြုပါ OPcache တိုးချဲ့
* 2. သွား opcache_get_configuration() configuration သတင်းအချက်အလက်ရယူပါ
* 3. configuration သတင်းအချက်အလက်ခွဲခြမ်းစိတ်ဖြာ,cache အရွယ်အစားကိုအာရုံစိုက်ပါ、缓存အသုံးပြု情况、နှုန်းထားကိုစသည်တို့ကိုနှိပ်ပါ။
*/</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 ဗားရှင်းဒီ function ကိုမထောက်ခံပါဘူး。"</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span>;
}
</span><span><span class="hljs-comment">// ရယူ OPcache configuration နှင့် status ကိုသတင်းအချက်အလက်</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 အဘယ်သူမျှမ script အသေးစိတ်ကိုပြသလျက်ရှိသည်,တိုးတက်မှုကိုတိုးတက်စေသည်</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 configuration သို့မဟုတ် status ကိုသတင်းအချက်အလက်。"</span></span><span>;
</span><span><span class="hljs-keyword">return</span></span><span>;
}
</span><span><span class="hljs-comment">// output ကို configuration သတင်းအချက်အလက်ဥပမာ</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">// output ကိုအခြေအနေသတင်းအချက်အလက်ဥပမာ</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>cache အပိုင်းအစများ:</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>cache hit နှုန်း:</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>cached scripts အရေအတွက်:</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">/**
* ပိုပြီးဖော်ရွေယူနစ်မှ bytes formatted
*/</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">/**
* 计算cache hit နှုန်း,ယူနစ်ရာခိုင်နှုန်း
*/</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">// status ကိုပြသရန် function ကိုခေါ်ဆိုခြင်း</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>