• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
روش صحیح در قرار دادن مقدار یک متغیر در یک رشته
#1
قبلا در سایت قدیم موردی رو خونده بودم اما فراموش کردم
کدوم روش سرعت بیشتری دارد

کد پی‌اچ‌پی:
    $str "text ".$var."Text";
    
$str 'text '.$var.'Text';
    
$str " text $var text ";
    
$str " text {$var}  text"
  پاسخ
تشکر شده توسط : Y.P.Y cyletech
#2
انجام دادم

کد :
کد پی‌اچ‌پی:
$var ="!@#$%%^^&*()QWERTYUIOP{halskdjfhlaksjdhflkasjdhflkajdhflkajsdhflkjasdhflkasdhflkajdhsfkljashdflkjahdsfkljahdsfkuuy4eiryew897rf6879df6vsdfuvgysiudfgu!@#$%^&*()_+_)(*&^%$#@#$%^&*()_+_)(*&^%$#)))):LKJHGFDSAXZXCVBNM<>}";
echo 
microtime()."<br />";
$str1 'text111111111111111111111111111111111 '.$var.'Tex111111111111111111111111111111111111111t';
echo 
microtime()."<br />";
$str2 "text111111111111111111111111111111111 {$var} Tex111111111111111111111111111111111111111t";
echo 
microtime()."<br />";
$str3 "text111111111111111111111111111111111 $var Tex111111111111111111111111111111111111111t";
echo 
microtime()."<br />"

خروجی :
کد:
0.25704000 1236727917
0.25712600 1236727917
0.25715200 1236727917
0.25717200 1236727917

نتیجه :

کد:
$str1 = 8600
$str2 = 2600
$str3 = 2000

واقعا جالب بود
  پاسخ
#3
در مورد بنچمارک بیشتر دقت کنید
باید یک حلقه تشکیل بدید که مثلا 1000 بار این کار رو انجام بده و برای هر کدوم از گزینه ها هم به صورت جدا گانه تست کنید.
  پاسخ
تشکر شده توسط : nasserghiasi
#4
همینطوریش عیان هست، Big Grin وای به حال این که تو لوپ هم بندازیمش
  پاسخ
تشکر شده توسط :
#5
از کش ها غافل نشید
برای benchmark همیشه توی یک رویه طولانی بزارید
  پاسخ
تشکر شده توسط : nasserghiasi
#6
سلام

وحید جان یه زحمت میکشی در مورد benchmark یه توضیح بدی . یادمه که خوندم ولی کلا کاربردش رو نمی دونم ... Wink
  پاسخ
تشکر شده توسط :
#7
سلام
من خاطرم هست که چند جا خونده بودم استفاده از { و } سرعت دسترسی به متغییر را بالا میبره، اما تا حالا تست نکرده بودم.
اما توی چند تا تستی که بعد از دیدن این تاپیک کردم با مقادیر مختلف و حالات مختلف منم به نتیجه مشابه رسیدم که استفاده از روش آخر در مثال فوق سرعت بیشتری داره.
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#8
بچ مارک یعنی تست دیگه. داخل php همیشه یا دنبا این هستیم که سرعت رو بنچمارک کنیم یا رمی رو که میگیره (بیشتر سرعت ) که قبل از پروسه و بعدش تایم رو به صورت میکرو تایم می گیریم.
اما چند نکته در مورد بنچ مارک وجود داره.
وقتی که دارید بنچمارک می کنیم باید کامپیوتر در حالت طبیعی باشه. تست رو نباید با همدیگه انجام بدید بلکه هر کدوم رو باید جدا جدا انجام بدید
سعی کنید cache رو حذف کنید و نذارید عمل کش انجام بشه. عمل رو در تعداد دفعات بالا انجام بدید
نرم افزار apache benchmark هم هست که با نام ab می شناسیم که اون دیگه برای benckmark کردن لینکهاست
  پاسخ
تشکر شده توسط : amir.s sama01 cyletech nasserghiasi


پرش به انجمن:


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