PDA

View Full Version : گفتگو: آیا استفاده از class ها در php باعث افزایش سرعت میشه؟



kabootar_y
جمعه 30 آبان 1393, 19:40 عصر
سلام به همه دوستان

من یه صفحه دارم که چند id رو از طریق آدرس میگیره. بعد در دیتابیس میگرده و رکورد های اونها رو انتخاب میکنه و در حلقه while تک تکشون رو استفاده میکنه.

در هر بار اجرا شدن while ویرایش های زیادی روی اطلاعات گرفته شده از دیتابیس انجام میشود و بعد دوباره در دیتابیس ذخیره میشود.

من مشکلم اینه که همش با ارور سرور 503 مواجه میشم.

آیا اگه کدهایی که این کارها رو میکنند در قالب یک function یا class استفاده کنم این مشکلم حل میشه؟ یا کمتر با این ارور مواجه میشم؟

اگه لطف بکنید یه راهنمایی بکنید ممنون میشم.

arash691
جمعه 30 آبان 1393, 20:11 عصر
استفاده از توابع و کلاس ها صرفا" جهت نظم بخشیدن به کل پروژه هستش ... شما اگه خطایی دریافت میکنن بهتره دنبال راه حلی برای رفع اون باشید ...

kabootar_y
جمعه 30 آبان 1393, 20:28 عصر
استفاده از توابع و کلاس ها صرفا" جهت نظم بخشیدن به کل پروژه هستش ... شما اگه خطایی دریافت میکنن بهتره دنبال راه حلی برای رفع اون باشید ...

دوست من من خطایی مثل parse erorr, undefined var, warning و امثال اینها ندارم.

اکثر اوقات صفحه ای مثل صفحه 404 میاد ولی شمارش 503 است و تا جایی که متوجه شدم برای اینه که سرور توان اجرای برنامه من رو نداره چون برنامم به علت استاندارد نبودن کدهام سنگینه.

حالا من باید از روش هایی استفاده کنم که فشار کمتری به سرور بیاد دیگه. درسته؟

kabootar_y
جمعه 30 آبان 1393, 20:32 عصر
آخه من به این دلیل به این فکر افتادم که سیستم هایی مثل جوملا شاید پردازش هایی 1000 برابر پردازش های اسکریپت من انجام میدن ولی خیلی خیلی کم این مشکلات واسشون پیش میاد.

حالا گفتم شاید به این دلیل باشه که اونا همه جا از کلاس و ... استفاده کردن

البته میدونم که اسکریپت من با جوملا قابل مقایسه نیست ولی کلی گفتم

kabootar_y
جمعه 30 آبان 1393, 20:53 عصر
تصویر صفحه خطا رو هم پیوست کردم. که کاملا متوجه بشید مشکل من چی هست

فرزند کوروش
جمعه 30 آبان 1393, 21:01 عصر
دوست عزیز مشکل از طرف سرور هست

kabootar_y
جمعه 30 آبان 1393, 21:35 عصر
دوست عزیز مشکل از طرف سرور هست

نمیشه گفت فقط از طرف سروره که.

پس چرا جوملا روش نصبه با اون همه کد های مختلف از این ارور ها هرگز نمیده؟

مشکل از کد من هم هست. گفتم اگه کدهام رو در قالب کلاس بنویسم شاید فشار کمتری به سرور بیاد.

آیا تاثیری داره؟ در سرعت و میزان فشار روی سرور؟

SlowCode
جمعه 30 آبان 1393, 22:23 عصر
خیر استفاده از کلاس در سرعت کدتون تاثیر مثبتی نداره.
شما سعی کن الگوریتمت رو بهینه تر کنی.
اگر مایل باشی کدهایی که نوشتی رو بزار تا بررسی بشن. شاید به صورت سریع تری قابل تبدیل باشه.

MMSHFE
شنبه 01 آذر 1393, 09:36 صبح
این خطا در اکثر مواقع وقتی بوجود میاد که خطایی در اسکریپت شماست و ارتباطی به شئ گرا یا رویه گرا نوشتن کدها نداره. خطاهای کدتون رو پیدا و برطرف کنید. این کدها رو در ابتدای اسکریپتتون بگذارین و ببینید خطاها رو دریافت میکنید یا نه؟

ini_set('display_errors', 'On');
error_reporting(E_ALL);

alinwp
شنبه 01 آذر 1393, 19:06 عصر
درود
تو حلقه ات از تابع sleep استفاده کن شاید حل شه

id1385
یک شنبه 02 آذر 1393, 15:14 عصر
دوست عزیز احتمالات خیلی زیادی وجود داره که ممکنه این خطا رو به شما نشون بده و استفاده از sleep رو هم بعید میدونم تاثیری داشته باشه چون تا دیلای تایم شما تموم نشه نتیجه رو نمی بینید مگه از خروجی بافر کمک بگیرید
احتمالاً شما توی کدهاتون یه حالت تسلسل دارید به اینصورت که یا از Redirect و استفاده میکنید یا هم کدهاتون بصورت نامفهوم درخواست میشن و موجب میشه که خطای عدم دسترسی بده البته کدهاتون شاید درست باشن و شایدد هم نه ولی چون به مرحله ای نمیرسه که بتونه صحت و خطای کد رو بفهمه موجب کند شدن و از کار افتادن کد میشه
یه احتمال دیگه هم اینه که اگر از while یا for استفاده میکنید حتماً چک کنید که منطقی و صحیح نوشته شده باشه بعضی وقتا اگه شما انتهای حلقه رو مشخص نکنید مثلاً اگه نگید کوچکتر مساوی فلان مقدر بشه مقدار رو بی نهایت در نظر میگیره و این یعنی تسلسل و تسلسل یعنی از کار افتادن و خروجی میشه 503.



for($inti=0;$inti<=100;$inti++)

HaZeM+
دوشنبه 03 آذر 1393, 21:29 عصر
این ارور بخاطر تایم اوت شدن اسکریپت شماس
شما باید query تون رو pagination کنید
تو هر صفحه 50 یا 100 query رو لود کنید
بعد یه ریدایرکت تعریف کنید ، مثال:
site.com/query.php?page=1


$newpage = (int)$_GET['page'];
$newpage++;
echo 'http-equiv="refresh" content="0; url=http://site.com/'.$newpage.'" />';