<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤသည်ဆောင်းပါး၏အကြောင်းအရာနှင့်ဆက်စပ်သောမဟုတ်ပါဘူးPHPCode Page</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒီဆောင်းပါးကိုဖတ်ရန်လှိုက်လှဲစွာကြိုဆိုပါသည်!<br>"</span></span><span>;
</span><span><span class="hljs-variable">$time_start</span></span><span> = </span><span><span class="hljs-title function_ invoke__">microtime</span></span><span>(</span><span><span class="hljs-literal">true</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">// စာသားကိုစတင်ပါ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>fgetssကြီးမားသောဖိုင်များပြုပြင်သည့်အခါ၎င်းသည်ထစ်ဖြစ်လိမ့်မည်?စွမ်းဆောင်ရည်ကိုအကောင်းဆုံးလုပ်ဖို့နည်းလမ်းအနည်းငယ်သင်ပေးပါ</h1>"</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">"<p>တည်နေPHPဖွံ့ဖြိုးမှုအောက်မှာ,fgetssfunctions များကို function များကိုဖိုင်တစ်ခုမှလိုင်းဖြင့်ဖတ်ရန်နှင့်၎င်းကိုဖယ်ရှားရန်အသုံးပြုသည်။HTMLကပ်တံဆိပ်,但တည်နေ处理大文件时,developer အတော်များများကသိသာထင်ရှားတဲ့ lag ကြုံတွေ့ရပါလိမ့်မယ်。ဤဆောင်းပါးသည် lag ၏အကြောင်းရင်းများကိုခွဲခြမ်းစိတ်ဖြာလိမ့်မည်,စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်လုပ်ရန်နည်းလမ်းများစွာကိုပေးသည်。</p>"</span></span><span>;
</span><span><span class="hljs-comment">// တစ်、နားလည်fgetssဘယ်လိုအလုပ်လုပ်သလဲ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h2>တစ်、နားလည်fgetssဘယ်လိုအလုပ်လုပ်သလဲ</h2>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>fgetssfunction ၏အဓိကအချက်မှာလိုင်းဖြင့်ဖိုင်အကြောင်းအရာကိုလိုင်းဖတ်ရန်ဖြစ်သည်,တစ်ချိန်တည်းမှာဖယ်ရှားပါHTMLနှင့်PHPကပ်တံဆိပ်。ဖိုင်ကြီးကြီးလျှင်,တစ်ခုချင်းစီကိုခေါ်ဆိုမှုfgetss都需要执行字符串解析နှင့်ကပ်တံဆိပ်过滤,ဤသည်သည်အတော်လေးစွမ်းဆောင်ရည် overhead ဆောင်ခဲ့ ဦး မည်。</p>"</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>နှစ်、ကြီးမားသောဖိုင်များအတွက်အကြောင်းပြချက်များ</h2>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> <span class="hljs-string">"<ul>
<li><strong>ဖိုင်ကြီးကြီး:</strong>တစ်次性读取整个文件会占用大量内存。</li>
<li><strong>မကြာခဏI/Oခဲှစိတ်ကုသ:</strong>အချိန်တိုင်းfgetssခေါ်ဆိုမှုအားလုံးသည် hard disk ကိုရယူရမည်,I/Oဒါဟာစွမ်းဆောင်ရည် bottleneck ပါပဲ。</li>
<li><strong>ကပ်တံဆိပ်解析开销:</strong>fgetssခွဲခြမ်းစိတ်ဖြာပါလိမ့်မယ်HTMLကပ်တံဆိပ်,这တည်နေ大文本中耗时明显。</li>
</ul>"</span>;
</span><span><span class="hljs-comment">// သုံး、Optimization နည်းလမ်း</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h2>သုံး、Optimization နည်းလမ်း</h2>"</span></span><span>;
</span><span><span class="hljs-comment">// နည်းလမ်း1:အသုံးပြုfgets+strip_tagsရေှးယူနိုင်ခြင်းfgetss</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h3>1. အသုံးပြု <code>fgets " // နည်းလမ်း 2: ကြားခံတိုးမြှင့်
ပဲ့တင်သံ " FGETSS သည်အများဆုံးဖတ်သည့်အရှည်ကိုဖော်ပြနိုင်ပြီးကြားခံကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းသည်ကွင်းဆက်အရေအတွက်ကိုလျှော့ချနိုင်သည် -
" ; ပဲ့တင်သံ "
\ $ buffersize = 8192; // default သည် 4096 ကို 4096 ကိုတိုးမြှင့်နိုင်သည်။ \ $ လက်ကိုင် = fopen ('blefile.txt' ',' r ');
စဉ် (! fef (\ $ လက်ကိုင်)) {
\ $ လိုင်း = fgetss (\ $ လက်ကိုင်, \ $ buffersize);
// process ကို \ $ လိုင်း
}
fcose (\ $ လက်ကိုင်);
" ; // နည်းလမ်း 3: ဖိုင်ကိုပိတ်ပင်တားဆီးမှုဖြင့်ဖတ်ပါ
ပဲ့တင်သံ " အလွန်ကြီးမားသောဖိုင်များအတွက် Fixed byte လုပ်ကွက်များကိုကျွန်ုပ် / o Times အရေအတွက်ကိုလျှော့ချရန်အချိန်မရွေးဖတ်ရှုနိုင်သည်
။ ပဲ့တင်သံ "
\ $ လက်ကိုင် = FOPEN ('blefile.txt', 'r';
\ $ chunksize = 16384;
စဉ် (! fef (\ $ လက်ကိုင်)) {
\ $ chunk = fread (\ $ လက်ကိုင်, \ $ chunksize);
\ $ စင်ကြယ်ခြင်း = strip_tags (\ $ အတုံး);
// လုပ်ငန်းစဉ် \ $ သန့်ရှင်းရေး
}
fcose (\ $ လက်ကိုင်);
" // နည်းလမ်း 4: မှတ်ဉာဏ်စွမ်းဆောင်ရည်တိုးတက်စေရန်မီးစက်ကိုသုံးပါ
ပဲ့တင်သံ " မီးစက်ကဖိုင်တစ်ခုလုံးကိုတစ်ခါမှမတင်ဘဲဖတ်ပြီးလုပ်ဆောင်နိုင်တယ်
-" ; ပဲ့တင်သံ "
function readfilledines (\ $ file) {
\ $ လက်ကိုင် = fopen (\ $ ဖိုင်, 'r');
အကယ်. (! \ $ လက်ကိုင်) ပြန်လာလျှင်,
စဉ် (! fef (\ $ လက်ကိုင်)) {
အထွက်နှုန်း stripp_tags (fgets (\ $ လက်ကိုင်));
}
fcose (\ $ လက်ကိုင်);
}
foreach (readfilledines (blefilefiles.txt) ကို \ $ လိုင်းအဖြစ်)
// process ကို \ $ လိုင်း
}
" ; // summarize
ပဲ့တင်သံ " Line-by-line စာဖတ်ခြင်းနှင့် tag parsing တို့ကြောင့်ဖြစ်ပေါ်လာသောစွမ်းဆောင်ရည်မြှင့်တင်ခြင်းများကြောင့်ကြီးမားသောဖိုင်များပြုပြင်သည့်အခါ FIGGESS သည်အမှန်ပင်ရှုပ်ထွေးနေနိုင်သည်
။ >