За последние 24 часа нас посетили 22487 программистов и 1282 робота. Сейчас ищут 796 программистов ...

Кружок любопытных извращенцев :)

Тема в разделе "Прочие вопросы по PHP", создана пользователем Psih, 9 июн 2009.

  1. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    я в твоём тоже ничего ен понимаю =))
    так быстрее
    на всякий пжрн.
    это и есть номальный вызов
     
  2. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Там скорость совершенно не играет роли - 4 наносекунды, или 5 наносекунд
    Если писать в твое стиле, то сделал чтото типа слеудющего. Хотя обычно я не поленился бы и разложил на 4 файла.

    Код (PHP):
    1. <?php
    2.  
    3. if ($argc < 2) {
    4.     die ('You should set function and type of arrays');
    5. }
    6.  
    7. define('ARRAY_LEN', 5000);
    8. define('STR_LEN'  , 6);
    9.  
    10. function genWord ($len) {
    11.     $symb = array_merge(range('A', 'Z'), range('0', '9'));
    12.     $word = '';
    13.     for($i = $len; $i--;) {
    14.         $word .= $symb[array_rand($symb)];
    15.     }
    16.     return $word;
    17. }
    18.  
    19. function genArray ($len, $numKeys = 1) {
    20.     $arr = array();
    21.     for ($i = $len; $i--;) {
    22.         $str = 'Abc_' . $i;
    23.         if ($numKeys) {
    24.             $array[] = $str;
    25.         } else {
    26.             $array[genWord(STR_LEN)] = $str;
    27.         }
    28.     }
    29.     return $array;
    30. }
    31. $in_array = ($argv[1] == 'in_array');
    32. $numKeys  = ($argv[2] == 'num');
    33.  
    34. $array = genArray(ARRAY_LEN, $numKeys);
    35.  
    36. if ($in_array) {
    37.     $s = microtime(1);
    38.     for($i = ARRAY_LEN; $i--;) {
    39.         in_array('Abc_' . $i, $array);
    40.     }
    41.     $e = microtime(1);
    42. } else {
    43.     $s = microtime(1);
    44.     for($i = ARRAY_LEN; $i--;) {
    45.         array_search('Abc_' . $i, $array);
    46.     }
    47.     $e = microtime(1);
    48. }
    49. $time = $e-$s;
    50.  
    51. $funcName = $in_array 'in_array    ' : 'array_search';
    52. $keysName = $numKeys  'numbers'  : 'words  ';
    53.  
    54. echo "$keysName\t $funcName\t $time";
    55.  
    56. ?>
    Код (Text):
    1. shock@shock:~$ php -f in_array.php in_array num
    2. numbers  in_array        1.56898784637
    3. numbers  in_array        1.46682596207
    4. numbers  in_array        1.54345297813
    5.  
    6. shock@shock:~$ php -f in_array.php array_search num
    7. numbers  array_search    1.58310008049
    8. numbers  array_search    1.56693696976
    9. numbers  array_search    1.57468390465
    10.  
    11. shock@shock:~$ php -f in_array.php in_array word
    12. words    in_array        1.46571493149
    13. words    in_array        1.50736808777
    14. words    in_array        1.54798603058
    15.  
    16. shock@shock:~$ php -f in_array.php array_search word
    17. words    array_search    1.54046916962
    18. words    array_search    1.53344988823
    19. words    array_search    1.54208493233
    in_array оказался быстрее
     
  3. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Кстати, Psih, откуда у тебя таки результаты?
    Даже учитывая то, что ты не обратил внимание на те тесты, которые я показывал на предыдущей страницы и поставив $this->$k в заранее невыгодное положение, у меня на твоем, не измененном, коде результат совершенно другой:

    Код (Text):
    1. Test with $this->$k:       1.7555880547
    2. Test with call_user_func:  3.7753160000
    3. Test with switch:          2.7043220997
    И если увеличить MAX в десять раз:
    Код (Text):
    1. Test with $this->$k:       16.8400199413
    2. Test with call_user_func:  36.0149941444
    3. Test with switch:          26.4321908951
     
  4. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Результаты у меня:
    Код (Text):
    1. shock@shock:~$ php -f call.php
    2. Test with $this->$k:       0.5787761211
    3. Test with call_user_func:  1.1570560932
    4. Test with switch:          0.6206638813
    5. Test with __call:          1.0854020119
    Если MAX увеличить в десять раз:
    Код (Text):
    1. shock@shock:~$ php -f call.php
    2. Test with $this->$k:       5.4993469715
    3. Test with call_user_func:  11.3275890350
    4. Test with switch:          5.9209101200
    5. Test with __call:          10.7685289383
    Еще раз обращаю внимание, что я не вносил никаких правок в код, использовал в точности тот, что ты привел.

    PHP 5.2.6
     
  5. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    У меня тоже call_user_func в аутсайдерах

    Код (Text):
    1. Test with $this->$k: 0.3663179874
    2. Test with call_user_func: 0.8560650349
    3. Test with switch: 0.4225261211

    Код (Text):
    1. Test with $this->$k: 3.7014639378
    2. Test with call_user_func: 8.3807721138
    3. Test with switch: 4.3606371880
    php 5.2.10, debian lenny
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    TheShock
    Машинка какая у тебя? =)
    (ПыСы: считать за офтап)
     
  7. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Ну если верить hardinfo:
    Код (Text):
    1. -Computer-
    2. Processor         : 2x Intel(R) Core(TM)2 Duo CPU     E4500  @ 2.20GHz
    3. Memory           : 2061MB (599MB used)
    4. Operating System : Linux From Scratch 9.04
     
  8. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    TheShock
    и после этого ты мне будешь заявлять о быдлокодорстве? :D
     
  9. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Mr.M.I.T., именно, что буду. Потому что у тебя каша и нету никакого, даже самого примитивного разделения. Где не надо - ты написал руками (40 ключей писал руками, хотя их можно было сгенерировать функцией - капец). А где критична каждая миллисекунда - ты использовал call_user_func, которая в два раза херит результаты тестов, о чем выше доказали я и Sergey89.

    При чем, обрати внимание, в этом тесте я специально продублировал следующее место, потому что это критичный к времени момент и я не хотел делать проверку if ($in_array) { в цикле

    Код (PHP):
    1. <?php
    2. if ($in_array) {
    3.     $s = microtime(1);
    4.     for($i = ARRAY_LEN; $i--;) {
    5.         in_array('Abc_' . $i, $array);
    6.     }
    7.     $e = microtime(1);
    8. } else {
    9.     $s = microtime(1);
    10.     for($i = ARRAY_LEN; $i--;) {
    11.         array_search('Abc_' . $i, $array);
    12.     }
    13.     $e = microtime(1);
    14. }
    15. $time = $e-$s; 
    А на счет того, у кого более читабельный код - пускай рассудит кто-то со стороны.
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    TheShock
    я в шоке =)))
    какая нафиг разница? на сравнение это вообще никак не влияет
    не умею я их генерировать, мне ручками проще написать и ничё от этого не изменится
    А то что ты константу передаёшь в аргументе,вот жесть то.
    и коду у тебя в 2 раза больше получилось

    и обрати внивание что хоть ты и всё АПтЕмизировал, времени на поиск у тебя ушло больше
    хотя комп у тебя в 2 раза мощьнее моего

    делай выводы
     
  11. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Mr.M.I.T., хорошо, попробуем твой тест на моем компе. Во-первых, мне пришлось добавить error_reporting(E_ALL ^ E_NOTICE); в начало скрипта, потому что в php.ini у меня стоит E_ALL:
    Код (Text):
    1. Notice: Undefined index: func in /home/shock/Web/www.tests.lh/htdocs/speed/test.php on line 3
    2. Notice: Undefined index: type in /home/shock/Web/www.tests.lh/htdocs/speed/test.php on line 4
    Еще я отключил запись в лог в таймере, заменой в конфиге 1 на 0

    Код (Text):
    1. Array type:Numbers; Function: in_array, Итоговое Время => 1.75832390785
    2. Array type:Numbers; Function: in_array, Итоговое Время => 1.76603889465
    3. Array type:Numbers; Function: in_array, Итоговое Время => 1.75931596756
    4.  
    5. Array type:Numbers; Function: array_search, Итоговое Время => 1.7408490181
    6. Array type:Numbers; Function: array_search, Итоговое Время => 1.75348114967
    7. Array type:Numbers; Function: array_search, Итоговое Время => 1.7569539547
    8.  
    9. Array type:Words; Function: in_array, Итоговое Время => 1.7763068676
    10. Array type:Words; Function: in_array, Итоговое Время => 1.74286103249
    11. Array type:Words; Function: in_array, Итоговое Время => 1.73543787003
    12.  
    13. Array type:Words; Function: array_search, Итоговое Время => 1.93225193024
    14. Array type:Words; Function: array_search, Итоговое Время => 1.73943305016
    15. Array type:Words; Function: array_search, Итоговое Время => 1.82167601585
    Во-первых, видно увеличение времени. Во-вторых непонятен столь нестабильный результат при "Array type:Words; Function: array_search". Проверял раз 15 - очень прыгает. Думаю, это тоже причина для сомнений.

    Ну и есть разница. На вычисления не должно влиять ничего. Потому что так виднее разница в процентном соотношении. А не только в том - есть разница, или нет.

    И да, in_array таки быстрее, что вполне логично.
     
  12. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Данный тест показывает влияние не непосредственного вызова функции, а через переменную, или с помощью call_user_func. Согласно его результатам вызов функции с помощью call_user_func может до 3 раз замедлить выполнение скрипта, а также достаточно нестабильный, из чего следует, что его нельзя использовать для проведения тестов, т.к. он может сильно повлиять на результаты. Рекомендуется использовать вызов функции через напрямую [is_int($arg)] или через переменную [$func($arg)]. Влияние на результат теста в таком случае минимально

    PHP:
    1. <?php
    2. $func = 'is_int';
    3. $s = microtime(1);
    4. for ($i=100000; $i--;) {
    5.  
    6.     /*
    7.      * 0.171620845795
    8.      * 0.14718079567
    9.      * 0.122843027115
    10.      * 0.147436141968
    11.      * 0.153021097183
    12.      */ // call_user_func($func, $i);
    13.  
    14.     /*
    15.      * 0.0564048290253
    16.      * 0.0572369098663
    17.      * 0.056524991891
    18.      * 0.0511071681976
    19.      * 0.0577621459961
    20.      */ // $func($i);
    21.  
    22.     /*
    23.      * 0.0525500774384
    24.      * 0.0531620979309
    25.      * 0.053619146347
    26.      * 0.0523669719696
    27.      * 0.0508480072021
    28.      */ // is_int($i);
    29. }
    30. $e = microtime(1);
    31. echo $e-$s;
    32. ?>
     
  13. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    TheShock
    Такие результаты из-за того, что я в Zend Studio по F5 запускал :))) Ошибку понял и результаты поправлю :)

    Mr.M.I.T.
    Ты уж извини, но твои тесты действительно сложно читаются. Я ни в один даже не вникал, потому что тупо за 10-15 секунд не понял, что там происходит. Зато потом пост TheSchock с переписанным тестом сразу был понятен даже при очень беглом взгляде.

    Все в топике тесты всегда красиво оформляют, следуй и ты той же практике. Иначе придётся удалить на самом деле их, потому что они портят всё впечатление. Можно сказать что это требование, поскольку топик всё таки мой и курируется мной же.


    Вообще, народ, соблюдаем правила приличия и обсуждаем конструктивно. Постить явный код на коленке абы как написанный - портить свою же карму.
     
  14. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    та ну вас. вот.

    Зы. у меня как это не логично, быстрее array_search, даже с использованием прямого вызова, как это объяснить? и вообще долго у тебя выволняется, хотя комп мощьнее намного моего
    Зыы. всё хорошо читается, тем более если читать 20 строчек
     
  15. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Mr.M.I.T.
    Ещё раз говорю, я запускал из-под Zend Studio прямо, что сильно сказалось (я бы сказал раз так в 20) на скорости выполнения. В преть буду тестировать на сервере в консоли.
     
  16. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Psih
    я не про call_user_func
    и вообще не про тебя, у Шока больно долго выполняется всё
     
  17. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    а хрен его знает. может у меня проц гавкнул.

    вообще, предлагаю больше не развивать эту тему.
     
  18. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    значит нельзя твоим результатам верить

    Последний нужный мне тест и мне плевать если вам не нравится код. Впринципе это нужно лично мне, могу вообще не публиковать...
    нужно выяснить насколько быстрее вызов обычной функции вызова метода класса, что быстрее статика или нет

    PHP:
    1. <?
    2. include_once "timer.class.php";
    3.  
    4. function GenStaticClass(){
    5.     $res='<? class GenStaticClass {';
    6.     for($i=0;$i<1000;$i++){
    7.         $res.="\r\n";
    8.         $res.='static function GenStaticClass_'.$i.'(){ return true; }';
    9.         $res.="\r\n";
    10.     }
    11.     $res.='}?>';
    12.     return $res;
    13. }
    14. function GenClass(){
    15.     $res='<? class GenClass {';
    16.     for($i=0;$i<1000;$i++){
    17.         $res.="\r\n";
    18.         $res.='function GenClass_'.$i.'(){ return true; }';
    19.         $res.="\r\n";
    20.     }
    21.     $res.='}?>';
    22.     return $res;
    23. }
    24. function GenFunction(){
    25.     $res='<?';
    26.     for($i=0;$i<1000;$i++){
    27.         $res.="\r\n";
    28.         $res.='function GenFunction_'.$i.'(){ return true; }';
    29.         $res.="\r\n";
    30.     }
    31.     $res.='?>';
    32.     return $res;
    33. }
    34. print "<pre>";
    35.  
    36. $_GET['type']=!$_GET['type']?"GenClass":"Gen".$_GET['type'];
    37. if(!function_exists($_GET['type'])) die("Func not found");
    38.  
    39. if(!is_file($file="data/{$_GET['type']}.ch.php")){
    40.     file_put_contents($file,$_GET['type']());
    41.     print "File '{$_GET['type']}' Created, Refresh page\r\n";
    42. }else{
    43.     include $file;
    44.     if(!class_exists($_GET['type'])){
    45.         Timer::Run("main");
    46.         for($i=0;$i<1000;$i++){
    47.             call_user_func($_GET['type']."_".$i);
    48.         }
    49.     }else{
    50.         $class=new $_GET['type']();
    51.         Timer::Run("main");
    52.         for($i=0;$i<1000;$i++){
    53.             call_user_func(array($class,$_GET['type']."_".$i));
    54.         }
    55.     }
    56.     print Timer::End("main","","Type:{$_GET['type']}, Time = {time}\r\n");
    57. }
    58. print "</pre>";
    59. ?>

    Вызов обычной функции ненамного быстрее вызова нестатического метода класса, статика тормозит
     
  19. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Mr.M.I.T., капец у тебя подход. Можно без обфускатора коммерческие проекты в паблик выкладывать - все-равно никто нихрена не поймет.

    А результаты тестов у меня вполне корректны.
     
  20. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    может быть, попробуй аргументировать
     
  21. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    а хотя лучше не пробуй, не надо.
     
  22. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
  23. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    md5 vs hash
    PHP:
    1. <?php
    2.  
    3. define('MAX', 5000000);
    4. $time = microtime(true);
    5. for ($i = MAX; --$i;) {
    6.     md5('test'.$i.'addf'.$i.$i);   
    7. }
    8. $time = microtime(true) - $time;
    9. echo 'md5 : ', number_format($time, 10, '.', '');
    10.  
    11. $time = microtime(true);
    12. for ($i = MAX; --$i;) {
    13.     hash('md5', 'test'.$i.'addf'.$i.$i);   
    14. }
    15. $time = microtime(true) - $time;
    16. echo 'hash: ', number_format($time, 10, '.', '');
    Результат:
    Код (Text):
    1. md5 : 5.9605150223
    2. hash: 7.0120978355
    md5 слегка шустрее
     
  24. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Очередное сравнение строк.

    Предыстория
    Мне очень приятны двойные кавычки.
    Чисто стилистически я считаю двойные кавычки более красивыми, нежели одинарные.
    В результате чего я решил провести простейший эксперимент, в котором выяснял: оправданно ли использовать
    двойные кавычвы заместо одинарных только красоты ради?
    Итак, несколько тестов.

    Тест 1
    PHP:
    1. <?php
    2.  
    3. $start = microtime(true);
    4. // ----------------------------------
    5. for($i = 0; $i <= 1000000; $i++) {
    6.     'Hello, World';
    7. }
    8. //------------------------------------
    9. echo (microtime(true) - $start);
    10. //------------------------------------
    11.  
    12.  
    13. $start = microtime(true);
    14. // ----------------------------------
    15. for($i = 0; $i <= 1000000; $i++) {
    16.     "Hello, World";
    17. }
    18. //------------------------------------
    19. echo "\n".(microtime(true) - $start);
    20.  
    21. ?>
    Результаты:
    Код (Text):
    1. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    2. 0.19712400436401
    3. 0.19821381568909
    4. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    5. 0.20402193069458
    6. 0.19852519035339
    7. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    8. 0.19652104377747
    9. 0.19737601280212
    10. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    11. 0.19618701934814
    12. 0.19513487815857
    13. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    14. 0.1964099407196
    15. 0.19552683830261
    Выводы:
    На данном этапе значительных замедлений не наблюдается, кроме того, в некоторых случаях второе оказываются ЧУУУТОЧКУ быстрее.
    Тестируем дальше.

    Тест 2
    PHP:
    1. <?php
    2.  
    3. // Какая-то переменная
    4. $hello = 'Hello, World';
    5.  
    6. $start = microtime(true);
    7. // ----------------------------------
    8. for($i = 0; $i <= 1000000; $i++) {
    9.     'Тут будет конкатенация с '.$hello;
    10. }
    11. //------------------------------------
    12. echo (microtime(true) - $start);
    13. //------------------------------------
    14.  
    15.  
    16. $start = microtime(true);
    17. // ----------------------------------
    18. for($i = 0; $i <= 1000000; $i++) {
    19.     "Тут будет конкатенация с $hello";
    20. }
    21. //------------------------------------
    22. echo "\n".(microtime(true) - $start);
    23.  
    24. ?>
    Результаты
    Код (Text):
    1. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    2. 0.39401197433472
    3. 0.58210802078247
    4. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    5. 0.40310096740723
    6. 0.6143741607666
    7. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    8. 0.39017391204834
    9. 0.58400988578796
    Выводы:
    Двойные кавычки явно успупают по скорости обычной конкатенации.


    Тест 3
    PHP:
    1. <?php
    2.  
    3. // Какая-то переменная
    4. $hello = 'Hello, World';
    5.  
    6. $start = microtime(true);
    7. // ----------------------------------
    8. for($i = 0; $i <= 1000000; $i++) {
    9.     'Тут будет конкатенация с '.$hello;
    10. }
    11. //------------------------------------
    12. echo (microtime(true) - $start);
    13. //------------------------------------
    14.  
    15.  
    16. $start = microtime(true);
    17. // ----------------------------------
    18. for($i = 0; $i <= 1000000; $i++) {
    19.     "Тут будет конкатенация с ".$hello;
    20. }
    21. //------------------------------------
    22. echo "\n".(microtime(true) - $start);
    23.  
    24. ?>
    Результаты
    Код (Text):
    1. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    2. 0.39318585395813
    3. 0.38473200798035
    4. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    5. 0.39034605026245
    6. 0.38453221321106
    7. C:\Documents and Settings\Apple>php -f E:\htdocs\index.php
    8. 0.39049100875854
    9. 0.39710903167725
    Выводы
    Опять, как мы видим, двойные кавычки порой показывают лучший результат


    ИТОГИ
    Двойные кавычки, вопреки мнению, которое я где-то читал, не являются тормознутыми по отношению к одиночным.
    При использовании их для обычных строк разницу в результате мы не чувствуем, но в случае, когда мы помещаем в строку переменную, она в разы уступает конкатенированной строке, обрамленной одинарными кавычками.
    Для меня этот тест очень важен, поскольку мне нравятся двойные кавычки, правда я не знаю, насколько рационально с точки зрения других программистов будет делать конкатенацию переменных с такими строками, если их можно заключить прямо в них, но по результатам теста я для себя выбор сделал, и я им очень доволен, поскольку мне не прийдется отказываться от того, что мне полюбилось.
     
  25. kostyl

    kostyl Guest

    Если я не ошибаюсь вывод противоречит результатам: ничья, +одинарныйе, ничья. В чем довольство не понятно. Однозначно двойные хуже - потому что они парсятся, а одинарные нет. Ну это касаемо быстродействия. Но это до поры до времени. Лучше посчитай при каком количестве конкатенаций двойные перестают уступать одинарным.