یوشا آل ایوب

دست نوشته ها و تجربیات شخصی

یوشا آل ایوب

دست نوشته ها و تجربیات شخصی

دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی
تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

۲۸ مطلب با موضوع «نرم افزار :: برنامه نویسی :: PHP» ثبت شده است

/**
 * A hack to support __construct() on PHP 4
 * Hint: descendant classes have no PHP4 class_name() constructors,
 * so this constructor gets called first and calls the top-layer __construct()
 * which (if present) should call parent::__construct()
 *
 * @return Object
 */
function object()
{
    $arguments = func_get_args();

    if (method_exists($this, '__destruct')) register_shutdown_function(array(&$this, '__destruct'));

    call_user_func_array(array(&$this, '__construct'), $arguments);
}

https://github.com/felixge/raleigh-workshop-08/blob/master/application/cake/libs/object.php

۱ نظر ۹۲/۰۵/۰۲
یوشا آل ایوب

 

مقایسه سرعت بین توابع is_array / is_string / is_integer... در مقابل تابع getype

سرعت بیشتر:

$variable = array(1, 2, 3, 4, 5);

if (is_array($variable))
{
    # ...
}

0.00079393386840820
0.00079488754272461
0.00080204010009766
0.00080204010009766
0.00080204010009766
0.00080204010009766
0.00081205368041992
0.00093293190002441
0.00111198425292970
0.00123190879821780

سرعت کمتر:

$variable = array(1, 2, 3, 4, 5);

if (gettype($variable) == 'array')
{
    # ...
}

0.0013110637664795
0.0013110637664795
0.0013139247894287
0.0013139247894287
0.0013179779052734
0.0013198852539062
0.0013239383697510
0.0013329982757568
0.0014750957489014
0.0018458366394043

 

x64 Hardware
32bit OS
PHP 5.4 CLI

۰ نظر ۹۲/۰۴/۱۱
یوشا آل ایوب

می دونستید وقتی متغیری رو برابر مقدار "" یا '' تعریف می کنید 2 بایت از Memory رو اشغال می کنید؟
در صورتی که فقط قصد تعریف اولیه(موجودیت) اون رو دارید...

ولی با قراردادن همون متغیر/ثابت برابر NULL می تونید این مقدار رو به 0 کاهش بدید enlightened
این در مورد بیشتر زبانهای برنامه نویسی(بجز C/Cpp) صدق می کنه.

۳ نظر ۹۲/۰۳/۱۰
یوشا آل ایوب

 

1- هرگز فایل های PHP ضمیمه شده رو با پسوند inc. ذخیره نکنید. یعنی name.class.inc رو به name.class.php تغییر بدید. و یا از .HTAccess یا HT برای تعیین سطح دسترسی inc. استفاده کنید.

با اینکار از دسترسی مستقیم و خوندن محتوای فایل توسط URL/Address bar جلوگیری می کنید.

 

2- حتاًالمکان تگ های اضافی و فضاهای خالی رو حذف و از باز و بسته کردن بیش از حد تگهای <?php ?> سرور خودداری کنید. (مخصوصاً در پروژه های سنگین)

اینکار به مقدار قابل توجهی در سرعت پردازش سورس PHP تون تاثیر میزاره.

 

3-  کلاس را با متد __construct یا نام کلاس شروع کنید و با متد __destruct پایان بدید. اگر هم از ارث بری کلاس استفاده نمی کنید، کلاس و متدها رو با کلمه کلیدی final آغاز کنید.

۴ نظر ۹۲/۰۱/۰۵
یوشا آل ایوب

مقایسه سرعت بین متغیر عدد و متغیر رشته عدد...
برای افرادی که اعداد رو هم داخل ' یا " قرار میدن!

 

صحیح:
سرعت بیشتر در استفاده و تعریف متغیر عدد:

$intTest = 1234567890;
$dblTest = 123.45;

0.000204086303711
0.000205993652344
0.000207185745239
0.000207185745239
0.000208139419556
0.000208139419556
0.000210046768188
0.000285148620605
0.000363111495972
0.000482082366943

غلط:
سرعت کمتر در استفاده و تعریف متغیر رشته عدد:

$strInteger = '1234567890';
$strDouble = "123.45";

0.000639200210571
0.000640153884888
0.000641107559204
0.000646114349365
0.000653028488159
0.000655174255371
0.000657081604004
0.000658988952637
0.000684976577759
0.000693798065186

 

x64 Hardware
32bit OS
PHP 5.4 CLI

۰ نظر ۹۱/۱۱/۱۹
یوشا آل ایوب

مقایسه سرعت بین * count و count FIELD در MySQL با موتور MyISAM:
در مواقعی که قصد شمارش رکورد ها/سطر رو دارید. (در اینجا fld_test از نوع عدد هستش و ایندکس نشده.)

 

سرعت بیشتر:

"select count(`fld_test`) from `tbl_data`;"

0.0561680068970
0.0578269958496
0.0581769943237
0.0587110519409
0.0590591430664
0.0594940185547
0.0598769953438

 

سرعت کمتر:

"select count(*) from `tbl_data`;"

0.0602030754089
0.0607211589813
0.0607681274414
0.0608351230621
0.0610001087189
0.0623991489410
0.0629029273987

 

x64 Hardware
32bit OS
PHP 5.4 CLI

۰ نظر ۹۱/۱۱/۱۶
یوشا آل ایوب

 

مقایسه سرعت دستور settype با Type-Casting...

سرعت کمتر با دستور settype:

$variable = settype($variable, 'string');
$variable = settype($variable, 'integer');
...

0.000537157058716
0.000538110733032
0.000538110733032
0.000538110733032
0.000540018081665
0.000542163848877
0.000542163848877
0.000543117523193
0.000550985336304
0.000910043716431

سرعت بیشتر با Type-Casting:

$variable = (string)$variable;
$variable = (int)$variable;
...

0.000250101089478
0.000252008438110
0.000259160995483
0.000259160995483
0.000261068344116
0.000263929367065
0.000263929367065
0.000265121459961
0.000269174575806
0.000270128250122

 

x64 Hardware
32bit OS
PHP 5.5 CLI

۰ نظر ۹۱/۱۰/۲۵
یوشا آل ایوب

 

بنچمارک یک صفحه ساده PHP با کمترین تگهای PHP: (مثل <? <?php ...)

0.50850105291
0.52559566562
0.54722023014
0.64710311898
0.67499809271
0.81791343696
0.83081188242
0.81518020635
0.91901159286
0.94415044785

همون صفحه ساده PHP با بیشترین تگهای PHP:

0.56940341953
0.58219291694
0.64270687157
0.72870445253
0.83770942696
0.86040687561
0.94139766698
0.93767976765
0.94624137873
1.06417045592
۰ نظر ۹۱/۰۷/۲۲
یوشا آل ایوب