webiran.co
جمعه 19 خرداد 1391, 14:16 عصر
این مقاله از مقالات گوگل برای افزایش سرعت لوود صفحات وب ترجمه شده است که به اشتباهات رایج در برنامه نویسی وب میپردازد.
نکاتی برای افزایش کارایی PHP
در این مقاله فرض میکنیم که خوانند اطلاعات مقدماتی درباره PHP میداند.
PHP یکی از زبانهای محبوب در میان برنامه نویسان است، که در سایتهای مشهور زیادی مورد استفاده قرار گرفته است. در این مقاله، امیدواریم تا بتوانیم نکاتی در بهبود کارایی کدهای PHPتان ارائه کنیم، که نیازمند تغییرات اندکی است که میتوانید سریع و بدون دردسر انجام دهید. در نظر داشته باشید که کارایی کدهای خودتان، بسته به اینکه از چه ورژنی از PHP استفاده میکنید، وب سرور شما چیست، و پیچیدگی کدتان تا چه اندازهای است، بسیار بالا باشد.
پروفایل کدتان را بدست آورید تا محدودیتهای کدتان را پیدا کنید.
همانطور که Hoare گفته است، نکته مهمی که باید به خاطر داشته باشید این است که؛ «بهینه سازی بی موقع، ریشة همه بدیهاست». قبل از تغییر دادن کدتان، لازم است که بدانید دلیل کندی آن در چیست. شما ممکن است طبق این مطلب، و بسیاری مقالات دیگر حتی اقدام به بهینهسازی ارتباطات بین پایگاه داده و PHP و یا کل شبکه بپردازید. با پروفایل کردن کد PHPتان میتوانید تنگناهای کدتان (محلهایی که کدتان را کند میکنند) را مشخص کنید.
سر چارلز آنتونی ریچارد هوار، دانشمند علوم کامپیوتر، متولد انگلیس که به خاطر ارائه الگوریتم Quicksort مشهور است.
منظور از پروفایل کد، اضافه کردن ماژولی مانند XDebug به سرورتان است که به طور اتوماتیک تمام کدهای PHP شما را بررسی میکند و به تمام آنها امتیاز میدهد، درصورتیکه این امتیاز پایین باشد، کدتان در آن قسمت دارای تنگناست که میتوانید با استفاده از متدهای بهینهسازی این تنگناها را رفع کنید.
نسخه PHPتان را ارتقاء دهید
تیم برنامهنویسی که موتور PHP را پشتیبانی میکنند، در طول سالها تعداد قابل توجهای ورژن کارا ساختهاند. اگر وب سرورتان هنوز از ورژنهای قدیمی، مثل PHP 3 یا PHP 4 استفاده میکند، قبل از ادامه بهینه سازی کدتان، بهتر است که PHPتان را ارتقاء دهید.
انتقال از PHP 4 به PHP 5.0.x
انتقال از PHP 5.0.x به PHP 5.1.x
انتقال از PHP 5.1.x به PHP 5.2.x
استفاده از Cache کردن
PHP از حافظه بافر برای نگهداری کدهایی که پرینت میکنند استفاده میکند. این بافر میتواند صفحات شما را کندتر کند، چرا که کاربران سایتتان مجبورند تا پر شدن بافر منتظر رسیدن اطلاعات باشید. خوبشختانه، شما میتوانید کدهایی بنویسید تا PHP را مجبور کند بافرهای خروجی را سریعتر پر کند که اغلب باعث میشود سایتتان سریعتر برای کاربران لوود شود.
Output Buffering Control
از نوشتن setter و getterهای ساده بپرهیزید
وقتی کلاسهایی در PHP می سازید، میتوانید در وقت و سرعت کدهای سایتتان با کارکردن به طور مستقیم با مشخصات آبجکت، به جای نوشتن setterها و getterها صرفه جویی کنید. در مثال زیر، کلاس dog، از متدهای setName() و getName(0 برای دسترسی به مشخصه name استفاده کرده ایم.
01 class dog {
02 public $name = '';
03
04 public function setName($name) {
05 $this->name = $name;
06 }
07
08 public function getName() {
09 return $this->name;
10 }
11 }
توجه کنید که این متدها هیچ کاری جز گرفتن مشخصه name و ست کردن آن ندارد.
1 $rover = new dog();
2 $rover->setName('rover');
3 echo $rover->getName();
ست کردن و فراخوانی مشخصه name به طور مستقیم میتواند 100% سرعت را افزایش دهد و به همان اندازه زمان برنامه نویسی را کاهش دهد.
1 $rover = new dog();
2 $rover->name = 'rover';
3 echo $rover->name;
نکاتی برای افزایش کارایی PHP
در این مقاله فرض میکنیم که خوانند اطلاعات مقدماتی درباره PHP میداند.
PHP یکی از زبانهای محبوب در میان برنامه نویسان است، که در سایتهای مشهور زیادی مورد استفاده قرار گرفته است. در این مقاله، امیدواریم تا بتوانیم نکاتی در بهبود کارایی کدهای PHPتان ارائه کنیم، که نیازمند تغییرات اندکی است که میتوانید سریع و بدون دردسر انجام دهید. در نظر داشته باشید که کارایی کدهای خودتان، بسته به اینکه از چه ورژنی از PHP استفاده میکنید، وب سرور شما چیست، و پیچیدگی کدتان تا چه اندازهای است، بسیار بالا باشد.
پروفایل کدتان را بدست آورید تا محدودیتهای کدتان را پیدا کنید.
همانطور که Hoare گفته است، نکته مهمی که باید به خاطر داشته باشید این است که؛ «بهینه سازی بی موقع، ریشة همه بدیهاست». قبل از تغییر دادن کدتان، لازم است که بدانید دلیل کندی آن در چیست. شما ممکن است طبق این مطلب، و بسیاری مقالات دیگر حتی اقدام به بهینهسازی ارتباطات بین پایگاه داده و PHP و یا کل شبکه بپردازید. با پروفایل کردن کد PHPتان میتوانید تنگناهای کدتان (محلهایی که کدتان را کند میکنند) را مشخص کنید.
سر چارلز آنتونی ریچارد هوار، دانشمند علوم کامپیوتر، متولد انگلیس که به خاطر ارائه الگوریتم Quicksort مشهور است.
منظور از پروفایل کد، اضافه کردن ماژولی مانند XDebug به سرورتان است که به طور اتوماتیک تمام کدهای PHP شما را بررسی میکند و به تمام آنها امتیاز میدهد، درصورتیکه این امتیاز پایین باشد، کدتان در آن قسمت دارای تنگناست که میتوانید با استفاده از متدهای بهینهسازی این تنگناها را رفع کنید.
نسخه PHPتان را ارتقاء دهید
تیم برنامهنویسی که موتور PHP را پشتیبانی میکنند، در طول سالها تعداد قابل توجهای ورژن کارا ساختهاند. اگر وب سرورتان هنوز از ورژنهای قدیمی، مثل PHP 3 یا PHP 4 استفاده میکند، قبل از ادامه بهینه سازی کدتان، بهتر است که PHPتان را ارتقاء دهید.
انتقال از PHP 4 به PHP 5.0.x
انتقال از PHP 5.0.x به PHP 5.1.x
انتقال از PHP 5.1.x به PHP 5.2.x
استفاده از Cache کردن
PHP از حافظه بافر برای نگهداری کدهایی که پرینت میکنند استفاده میکند. این بافر میتواند صفحات شما را کندتر کند، چرا که کاربران سایتتان مجبورند تا پر شدن بافر منتظر رسیدن اطلاعات باشید. خوبشختانه، شما میتوانید کدهایی بنویسید تا PHP را مجبور کند بافرهای خروجی را سریعتر پر کند که اغلب باعث میشود سایتتان سریعتر برای کاربران لوود شود.
Output Buffering Control
از نوشتن setter و getterهای ساده بپرهیزید
وقتی کلاسهایی در PHP می سازید، میتوانید در وقت و سرعت کدهای سایتتان با کارکردن به طور مستقیم با مشخصات آبجکت، به جای نوشتن setterها و getterها صرفه جویی کنید. در مثال زیر، کلاس dog، از متدهای setName() و getName(0 برای دسترسی به مشخصه name استفاده کرده ایم.
01 class dog {
02 public $name = '';
03
04 public function setName($name) {
05 $this->name = $name;
06 }
07
08 public function getName() {
09 return $this->name;
10 }
11 }
توجه کنید که این متدها هیچ کاری جز گرفتن مشخصه name و ست کردن آن ندارد.
1 $rover = new dog();
2 $rover->setName('rover');
3 echo $rover->getName();
ست کردن و فراخوانی مشخصه name به طور مستقیم میتواند 100% سرعت را افزایش دهد و به همان اندازه زمان برنامه نویسی را کاهش دهد.
1 $rover = new dog();
2 $rover->name = 'rover';
3 echo $rover->name;