|
|
|
ช่วยใขข้อข้องใจหน่อยครับสงสัยมานานมากๆแล้ว . . . . ถามครับถ้า $a=yes สองประโยคนี้จะกินทรัพยากร Server เท่ากันไหมครับ |
|
|
|
|
|
|
|
แบบแรกกินทรัพยากรมากกว่าแน่นอนครับ ทั้ง CPU และ RAM
เพราะ PHP ต้อง parse file ทุกครั้งที่ทำงาน หรือแม้จะใช้พวก op cache ก็ต้องเก็บไว้ใน RAM หรือ HDD อยู่ดี
และโค้ดยิ่งยาวเท่าไหร่ ก็จะ parse นาน และใช้ RAM เยอะเท่านั้น
แต่ระยะเวลาการทำงานจะเท่ากัน ในกรณีที่ $a == "yes"
|
|
|
|
|
Date :
2013-10-03 01:51:08 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อาจจะงงคำว่า "ระยะเวลาการทำงาน"
คือ PHP มี การทำงานสองช่วงนะครับ
1.ช่วงอ่านไฟล์ และ parse หรือการ compile ให้เป็น op code
2. ช่วงเอา op code ที่ได้มาทำงาน
"ระยะเวลาการทำงาน" ที่ผมกล่าวข้างต้น หมายถึงช่วง 2 ครับ
|
|
|
|
|
Date :
2013-10-03 01:53:32 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังงี้ถึงตามหลักเราจะเข้าใจและเห็นว่าโค้ดไม่ทำงาน เพราะเงื่อนใขมันเป็นเท็จ แต่มันก็มีการกินทรัพยากรอยู่ไช่ไหมครับ
งั้นผมก็เข้าใจผิดมาตลอดว่า ในถ้าไม่เข้าเงื่อนใขไม่เปลืองทรัพยากร พอดีชอบเขียนโค้ดแบบเอา if ครอบไว้มากๆ เพราะคิดตลอดว่ามันไม่ทำงานก็ไม่หนัก T__T ต้องเปลื่อนแนวคิดใหม่แล้วเรา ขอบคุณphpinfo() มากๆครับ
อ่อมีอีกเรื่องนึง 2 อย่างนี้อันไหนหนักกว่ากันครับ
1.
<?
//โค้ด 3000 บรรทัด
?>
2.
<?
include ("aaa.php"); // ไฟล์ aaa บรรจุ 3000 บรรทัดเหมือนข้างบนเป๊ะ
?>
|
|
|
|
|
Date :
2013-10-03 02:13:21 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบ 2 หนักกว่าครับ ในกรณีที่ทำงานแบบไม่มีเงื่อนไขเลย
เพราะแบบ 2 มีการอ่านไฟล์เพิ่มเข้ามา ต้องมีการเข้าถึงไฟล์ในระบบเข้ามา
แต่ถ้า
Code (PHP)
<?php
if ($a === 'Y') {
include 'aaa.php';
}
?>
แบบนี้ถ้าเงื่อนไขไม่เป็นจริง ก็จะไม่กินทรัพยากรในส่วนโค้ด 3000 บรรทัดนั้นเลย
|
|
|
|
|
Date :
2013-10-03 02:18:43 |
By :
phpinfo() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ๋อยังงั้นเรารวบข้อดีทั้งสอบรูปแบบกันได้เลยไช่ไหมครับ . . ประมาณว่าเงื่อนใข if นี้เป็นเท็จประจำ ประมาณว่านานๆทีมันจะเท่ากับ Y ทีนึง
<?php
if ($a === 'Y') {
include 'aaa.php';
}
?>
เขียนยังงี้ก็ประหยัดกว่ายัดไป 3000 บรรทัดตรงๆ. . . แต่ถ้ามันเป็นจริงบ่อยๆก็จะหนักกว่า 3000 บรรทัดตรงๆ ยังงี้อยู่ที่เราจะเลือกใช้ไช่ไหมครับว่าเหมาะสมกับเหตุการณ์หรือไม่
|
|
|
|
|
Date :
2013-10-03 02:34:56 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|