Spring Security 3.1.3 лишен строки запроса

Я собираюсь сделать второй комментарий здесь, если вы собираетесь оптимизировать, вы не получите большого улучшения, исключив повторяющиеся переменные (хотя, если у вас есть огромные переменные, вы хотите устранить дублирование для сохранения памяти - не скорость). Однако, для демонстрации, я установил этот тест для тестирования:

session_start();
$hey = "THIS IS A TEST OF ACCESS SPEEDS"; //our variable
$_SESSION['hey'] = $hey; //out session variable
$hey_array = array('a'=>'random','b'=>'random','c'=>'random'); //another random array
$hey_array['hey'] = $hey;

function access_the_variable($var){
    $waste_some_time = substr($var,0,10); //this could be anything
}

//GO!
$start = microtime(true);
for($i=0;$i<100000;$i++){
    access_the_variable($hey);
}
$end  = microtime(true);
echo "\$hey took ".($end-$start)." microseconds<br />";

$start = microtime(true);
for($i=0;$i<100000;$i++){
    access_the_variable($_SESSION['hey']);
}
$end  = microtime(true);
echo "\$_SESSION['hey'] took ".($end-$start)." microseconds<br />";

$start = microtime(true);
for($i=0;$i<100000;$i++){
    access_the_variable($hey_array['hey']);
}
$end  = microtime(true);
echo "\$hey_array['hey'] took ".($end-$start)." microseconds<br /><br />";

Результаты нескольких прогонов:

$ hey взял 0.079180002212524 микросекунды $ _SESSION [ 'hey'] взял 0.096824884414673 микросекунды $ hey_array ['hey'] взял 0.091028928756714 микросекунд

$ hey взял 0.080883026123047 микросекунды $ _SESSION ['hey'] взял 0.095050096511841 микросекунды $ hey_array ['hey'] взял 0.091977834701538 микросекунд

$ hey взял 0.081928968429565 микросекунды $ _SESSION ['hey'] взял 0.097215890884399 микросекунды $ hey_array ['hey'] взял 0.092087030410767 микросекунд

$ hey взял 0.081655979156494 микросекунды $ _SESSION ['hey'] взял 0.098057985305786 микросекунды $ hey_array ['hey'] взял 0.09247899055481 микросекунды

$ hey взял 0.081120014190674 микросекунды $ _SESSION ['hey'] взял 0.096808910369873 микросекунды $ hey_array ['hey'] взял 0.092255115509033 микросекунды

$ hey взял 0.081827878952026 микросекунды $ _SESSION ['hey'] взял 0.0961349010467 53 микросекунды $ hey_array ['hey'] взял 0.092247009277344 микросекунды

$ hey взял 0.081613063812256 микросекунды $ _SESSION ['hey'] взял 0.096814870834351 микросекунды $ hey_array ['hey'] взял 0.090691804885864 микросекунд

Итак, в 100 000 циклов мы говорим о .01 MICROSECONDS.

Однако стоит отметить, что разность скоростей почти полностью связана с необходимостью доступа к ассоциативному массиву. Тот факт, что это суперглобал, не влияет на это (длина массива, однако, и вы начнете видеть крошечные разницы в скорости, если ваш массив SESSION станет огромным (но опять же, мы говорим о hundreths в миллионных доли секунды).

34
задан Tomka Koliada 16 March 2019 в 12:46
поделиться