• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بهینه سازی دستیابی به متغیرهای کلاس در PHP 5.4
#1
یه ذره ترجمه ش سرخپوستی شد، متنشون باحال نبود ولی جان مطلب بنظرم جالب اومد، باهاش موافقید؟

دلایلی له و علیه زبان های برنامه نویسی پویا

همانطوری که همه ما میدانیم PHP یک زبان پویا میباشد، بیشتر ما PHP کارها از مشخصه های آن لذت میبریم زیرا که برنامه نویسی را راحت تر و قابل انعطاف تر میکند.
این به این معنی است که شما نیاز به اعلان های اضافه برای بیشتر منابع مورد نیازتان ندارید، برای مثال نام و نوع متغیرها، آنطور که در زبان های ایستا اعلان میشوند.
البته برنامه نویسی داینامیک (پویا) بهایی هم دارد، اگر از پیش نوع متغیرها را ندانید، تمام مرتب سازی هایی که برای بهینه سازی انجام میدهید را در اختیار نخواهید داشت (نسبت به زمانی که متغیرها از قبل تعیین نوع میشوند).


متغیرهای کلاس های پویا
در PHP، کلاسها ممکن است یک تعدادی متغیر داشته باشند، برغم اینکه شما میتوانید متغیرهایی که میدانید ضرروی هستند را اعلان نمایید، شما همچنین میتوانید مقداری را به یک متغیر جدید که قبلاً اعلان نشده است، نسبت بدهید.

در نتیجه به این مسئله میرسیم که موتور PHP در زمان اجرا نیازمند زمانی برای محاسبه مکان قرار دادن مقدار متغیرهای کلاس میباشد، عملاً این بدین معنا میباشد که ذاتاً متغیرهای کلاس نیازمند ذخیره سازی در یک ساختار داده ای پویا که باید ضرورتاً بسط داده شود میباشند.


بهینه سازی دستیابی که متغیرهای کلاس در PHP 5.4

Rasmus Schulz (او را با سازنده پی.اچ.پی Rasmus Lerdorf اشتباه نگیرید) یک توسعه دهنده دانمارکی میباشد که پیشتر با موضوع "اگر PHP دربالای موتور کامپایلر JIT اجرا شود، سریع تر کار میکند" شناخته شد.
او اخیراً هم در یک ایمیل داخلی کانون توجه ما قرار گرفته است با موضوعی تحت عنوان: "مصرف بیش از اندازه حافظه در زمانی که تعداد زیادی شیء از یک کلاس ایجاد میشود"؛ او بر این عقیده بود که این امر بدین سبب میباشد که در حقیقت PHP برای هر شیء یک ساختمان داده داینامیک (جدول هش) برای ذخیره خصیصه های متغیرهای هر کلاس ایجاد میکند.
این بدین معنا میباشد که PHP انتظار دارد که لیست متغیرهای یک کلاس در طول عمر هر شیء تعییر کند؛
اما اگر لیست متغیرها هرگز تغییر نکند، حافظه زیادی به هدر رفته است زیرا که اشیاء مختلف از یک کلاس میتوانند با به اشتراک گذاشتن ساختمان داده اشتراکی تمام اشیاء یک کلاس کارآمد تر باشند.
بخاطر همین بود که وقتی توسعه دهتده پرتغالی Gustavo Lopes شرح داد که از شروع به کار PHP 5.4 جدول هش خصوصیات پویا در زمان اجرا فقط برای همان متغیرهایی که به صورت پویا داخا اشیاء ایجاد شده اند ایجاد میشود.
بعلاوه Tom Boutell پس از یک بحث طولانی و اجرای اسکریپت به روز شده Rasmus Schulz ، بیان داشت که اعلان از قبل یک متغیر نه تنها استفاده بیش از حد حافظه نیست، بلکه 20% سرعت را هم افزایش میدهد.
با این تفاضیل درک این مسئله باید برای شما آسان باشد که باید از متغیرهایی که از قبل اعلان نشده اند دوری کنید، به دیگر بیان شما باید متغیرهای کلاس را حتی اگر مقدار اولیه نداشته باشند، اعلان نمایید.
با اینکه تعریف متغیرهای کلاس یک تمرین عمومی میباشد، بعضی توسعه دهندگان تمام متغیرها را اعلان قبلی نمیکنند، بویژه اگر آنها محلی باشند یا نیاز به مقدار اولیه نداشته باشند.
در کل بهره این بهینه سازی زمانی نمو دارد که شما نیاز به ساخت اشیاء زیادی از یک کلاس مشایه داشته باشید، اگر شما تعداد کمی شیء از یک کلاس درست کنید، ممکن است تغییرات زیادی در مقایسه با حالت عدم اعلان متغیرها مشاهده ننمایید.


منبع: phpclasses.org
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : admin zoghal Reza M.J mohsened asdb20


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان