راکت
حل شده

بهینه سازی php

4 پاسخ

سلام دوستان،

من روی سرور مجازیم یک اسکریپت با زبان php نوشتم و ران کردم که داخلش معاملات جمع و تفریق و تقسیم و اینجور چیزا انجام میشه
حدود 1000 خط هم هست

داخل قسمت پردازش هم 1.5 گیگ رم و 35 درصد پردازنده رو مصرف میکنه

نکته : این اسکریپت داخل حلقه بی نهایت اجرا میشه

چیکار کنم مصرف رم و پردازشم کاهش پیدا کنه ؟

هومن
هومن
@houman
ثبت پرسش جدید

پاسخ‌ها

4
AriaieBOY
AriaieBOY
@ariaieboy

تخصص: TALL Stack Lover

بهترین پاسخ

به احتمال قوی چون برنامه به صورت دائم در حال اجرا هست یکسری متغیر ایجاد میکنه داخل حافظه و خوب چون اسکریپت هیچ موقع تموم نمیشه در نتیجه این حافظه هم آزاد نمیشه.

یکبار اسکریپت متوقف کنید حافظه را خالی کنید. سپس اسکریپت مجددا ران کنید اگر به مرور حافظه زیاد میشه صد در صد همین مسئله ای هست که من گفتم.
اگر سرور هست از طریق ابزار هایی مثل htop میتونید دقیق ببینید چه پروسس داره بیشتری مموری را مصرف میکنه اگر پروسس مربوط به برنامتون باشه میتونید با ابزار های دیباگر بررسی کنید که دقیقا چی داره حافظه مصرف میکنه و بهینه سازی انجام بدید.

یک راه حل بهینه تر به نسبت لوپ بینهایت استفاده از event loop مثل ایونت لوپ reactphp هست.

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

اشما خیلی هم تمیز و بهینه بنویسید تا حدی میتونید این مقدار رو کاهش بدید . و بعد از حدی دیگه به ما برنامه نویس ها ربطی نداره و دیگه کاری از دست ما بر نمیاد .

هومن
هومن
@houman

تخصص: گرافیک، طراحی رابط کاربری، BackEnd - node.js - js - php

@gomnam
سومین باره که ریفکتور می‌کنم ‌تمیز مینویسم
دیگه خیلی تمیزه

اما معادلات سختی انجام نمیده که یک و نیم گیگ رم بخواد

فقط چندتا شرط اعمال شده که اگه true باشه فلان کارو انجام میده
حدود 30 تا شرط هست که اکثرا تو زمان false میشن و احتمال true شدنشون تو ساعت چیزی بین 10-20 بار در ساعته

بعد از true شدن معادلات رو هم انجام میدن

درضمن من sleep هم گذاشتم برای کدم

شاید پاسخ شما همین‌جا باشد

هومن
هومن
@houman

تخصص: گرافیک، طراحی رابط کاربری، BackEnd - node.js - js - php

کلا غیر منطقیه برای همچین کدی 1.5 گیگ رم بخواد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام