آخر تابستونت رو متفاوت کن 🌟 ۳۰٪ تخفیف + هدیه ۳ میلیونی 🎁😉
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ hamid abdi
performance
محسن موحد حل شده توسط محسن موحد

سلام به دوستان و خسته نباشید.

در مورد تبدیل ارایه‌ها به object:

خوب جلوتر با تابع‌های مختلفی میشه این تبدیل‌ها رو انجام داد و مشکلی وجود نداره.

 

سوال اینه که در مورد بهینه بودن و پردازش یا بطور کلی performance 

زمانی که ما آرایه ای رو اول تبدیل به json  و بعد زمان گرفتن json  اونو تبدیل به object  در php  میکنیم .

!این فرایند ایا بهینه است ؟ 

 اگر مثل حالت اول که استاد انجام دادن به ارایه و عضوهایی که بصورت ارایه در ارایه بودن (دو بعدی) به انها جداگانه (object) رو اضافه کنیم ، من این فرض رو دارم که این فرایند پردازش کمتری و performance بالاتری نسبت به حالت تبدیل کردن به json  و بازگرفتن ان بصورت object در php  دارد.

 

حال کدام بهینه‌تر است ؟

 

 

سلام،

اگر صرفا پرفورمنس و تایمینگ براتون اهمیت داشته در این موضوع خب مشخصه روشی که آرایه به آبجکت cast میشه بهینه‌تر خواهد بود. یک مرحله هم کمتر خواهد بود.

برای تست تایم اجرای هر کد میتونید از microtime استفاده کنید:

$array = [
    "foo" => "bar",
    "baz" => "qux",
];
$time1 = microtime(true);
$jsonString = json_encode($array);
$object = json_decode($jsonString);
$time2 = microtime(true);
echo $time2 - $time1;

و سینتکس دوم:

$array = [
    "foo" => "bar",
    "baz" => "qux",
];
$time1 = microtime(true);
$object = (object) $array;
$time2 = microtime(true);
echo $time2 - $time1;

این مقایسه در شرایط مختلف خروجی متفاوتی خواهد داشت منتها نتیجه کلی را نشان خواهد داد. ضمناً در این مقیاس دیتا، تاثیر آنچنانی در پرفورمنس نخواهد داشت. این مسئله خیلی جزئی است وگرنه دستورات دیگری مثل حلقه ها، conditionها، چاپ خروجی‌ها و ... هم پرفورمنس متفاوتی میتوانند داشته باشند اما شما باید دنبال نتیجه ای که میخواهید باشید مگر جایی که تفاوت مشهود باشد.

بهترین پاسخ
محسن موحد ۲۶ مهر ۱۴۰۲، ۰۶:۰۶

مرسی اقا محسن . 

توضیحات خوبی بود ؛

hamid abdi ۲۶ مهر ۱۴۰۲، ۰۹:۳۲