زبان برنامهنویسی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
FreshmanBot (بحث | مشارکتها) جز ←مدیریت منابع و نشت حافظه: اصلاح نویسه با استفاده از AWB |
|||
خط ۱۳۴:
تفاوت سرعت پردازش زبانهای ایستا و پویا در برنامههایی که نیاز به پردازشهای بسیار حجیم در مدت زمان بسیار کوتاه دارند خودش را نشان میدهد بنابراین تفاوت سرعت پردازش در مورد حتی وبگاههای بسیار شلوغ آنقدر نیست که امکانات فراهم شده توسط یک زبان سطح بالا مانند php یا python را فدای سرعت C++ کنند البته برای مثال فیسبوک مجبور شد که php را بواسطه c++ بر روی facebook hiphop گسترش دهد تا به سرعت پردازش مطلوب خودش برسد. برای مثال درباره python توصیه شدهاست که حلقههای چرخشی روی حجم بالای داده را بواسطه لوپ خود پایثون و با اندیس index انجام ندهید بلکه یک آرایه array تهیه کرده و چرخش را به زیرساخت C++ آن واگذار کنید.
اما مساله مدیریت حافظه و نشت آن یا memory leakage از آنجاست که در زمان اجرای برنامه (runtime) ابتدا فضایی از حافظه به نام کداسپیس به کد اختصاس داده میشود و به بقیه حافظه در دسترس heap گفته میشود. مسئولیت استفاده و تضمین خالی کردن بخش اشغالشده از heap پس از پایان کار به عهده خود برنامهنویس است در غیر اینصورت برنامه ممکن است دچار نشت حافظه شود. در زمان رانتایم جدولی از کداسپیس درون ساختار زبان برای تعیین حافظه مورد استفاده هر بخش از کد (مثلا یک تابع یا فانکشن) اختصاص داده میشود که به هر بخش از آن اصطلاحاً Scope گفته میشود که تعیین میکند که کدام متغیرها توسط کدام بخش از کد استفاده میشوند تا در آغاز یک scope آن متغیرها درون محیط مثلا یک تابع ایجاد شوند و پس از اجرا
== عمل ==
|