Что быстрее?
1.Объединить массивы?
1.1 Присоединить массивы (с неустановленным)
Код ниже:
for($i=1;$i<1000;$i++){
$string[]='lorem_';
$string[]= $i;
$string[]='_ipsum';
$string = join('',$string);
var_dump($string);
unset($string);
}
сгенерировать эту среднюю производительность:
.---------.----------------.--------------.--------------.
| Version | System time(s) | User time(s) | Memory (MiB) |
|---------|----------------|--------------|--------------|
| 5.6 | 0.016 | 0.061 | 20.60 |
| 7.0 | 0.009 | 0.010 | 16.69 |
| 7.1 | 0.011 | 0.011 | 24.18 |
| 7.2 | 0.003 | 0.017 | 19.41 |
'---------'----------------'--------------'--------------'
источник: https://3v4l.org/8YK1H/perf#output
1.2 Объединение массивов (без сброса)
Код ниже:
for($i=1;$i<1000;$i++){
$string = [];
$string[]='lorem_';
$string[]= $i;
$string[]='_ipsum';
$string = join('',$string);
var_dump($string);
// unset($string);
}
создает среднюю производительность:
.---------.----------------.--------------.--------------.
| Version | System time(s) | User time(s) | Memory (MiB) |
|---------|----------------|--------------|--------------|
| 5.6 | 0.017 | 0.068 | 20.58 |
| 7.0 | 0.012 | 0.013 | 16.13 |
| 7.1 | 0.021 | 0.012 | 23.23 |
| 7.2 | 0.013 | 0.010 | 17.65 |
'---------'----------------'--------------'--------------'
источник: https://3v4l.org/kU4QG/perf#output
2.Сокращенный оператор?
2.1 Сокращенный оператор (с неустановленным значением)
Код ниже:
for($i=1;$i<1000;$i++){
$string = 'lorem_';
$string .= $i;
$string .= '_ipsum';
// $string = join('',$string);
var_dump($string);
unset($string);
}
генерирует это среднее значение производительности:
.---------.----------------.--------------.--------------.
| Version | System time(s) | User time(s) | Memory (MiB) |
|---------|----------------|--------------|--------------|
| 5.6 | 0.012 | 0.059 | 20.60 |
| 7.0 | 0.008 | 0.011 | 16.65 |
| 7.1 | 0.014 | 0.012 | 24.22 |
| 7.2 | 0.012 | 0.009 | 19.08 |
'---------'----------------'--------------'--------------'
источник: https://3v4l.org/cCoSC/perf#output
2.2 Оператор стенографии (без сброса)
Код ниже:
for($i=1;$i<1000;$i++){
$string = 'lorem_';
$string .= $i;
$string .= '_ipsum';
// $string = join('',$string);
var_dump($string);
// unset($string);
}
генерирует эту среднюю производительность:
.---------.----------------.--------------.--------------.
| Version | System time(s) | User time(s) | Memory (MiB) |
|---------|----------------|--------------|--------------|
| 5.6 | 0.011 | 0.059 | 20.60 |
| 7.0 | 0.008 | 0.011 | 16.70 |
| 7.1 | 0.014 | 0.011 | 24.22 |
| 7.2 | 0.010 | 0.010 | 19.33 |
'---------'----------------'--------------'--------------'
источник: https://3v4l.org/iKnaV/perf#output
3.Конкат одной строки?
3.1 Конкатенация одной строки (без сброса)
Приведенный ниже код:
for($i=1;$i<1000;$i++){
$string = 'lorem_' . $i . '_ipsum';
// $string .= $i;
// $string .= '_ipsum';
// $string = join('',$string);
var_dump($string);
unset($string);
}
создает эту среднюю производительность:
.---------.----------------.--------------.--------------.
| Version | System time(s) | User time(s) | Memory (MiB) |
|---------|----------------|--------------|--------------|
| 5.6 | 0.015 | 0.066 | 20.60 |
| 7.0 | 0.008 | 0.012 | 16.68 |
| 7.1 | 0.014 | 0.014 | 24.23 |
| 7.2 | 0.010 | 0.014 | 19.45 |
'---------'----------------'--------------'--------------'
источник: https://3v4l.org/tv4X0/perf#output
3.2 Объединение в одну строку (без сброса)
Код ниже:
for($i=1;$i<1000;$i++){
$string = 'lorem_' . $i . '_ipsum';
// $string .= $i;
// $string .= '_ipsum';
// $string = join('',$string);
var_dump($string);
// unset($string);
}
сгенерировать этосредняя производительность:
.---------.----------------.--------------.--------------.
| Version | System time(s) | User time(s) | Memory (MiB) |
|---------|----------------|--------------|--------------|
| 5.6 | 0.012 | 0.056 | 20.65 |
| 7.0 | 0.008 | 0.008 | 16.69 |
| 7.1 | 0.014 | 0.010 | 24.17 |
| 7.2 | 0.007 | 0.011 | 19.39 |
'---------'----------------'--------------'--------------'
источник: https://3v4l.org/mF0YW/perf#output
Если объединить все результаты по версии PHP:
PHP 5.6
.-------------.----------------.--------------.--------------.
| Code | System time(s) | User time(s) | Memory (MiB) |
|-------------|----------------|--------------|--------------|
| 1.1 | 0.016 | 0.061 | 20.60 |
| 1.2 | 0.017 | 0.068 | >> 20.58 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 1 | 0.0165 | 0.0645 | >> 20.59 |
|-------------|----------------|--------------|--------------|
| 2.1 | 0.012 | 0.059 | 20.60 |
| 2.2 | >> 0.011 | 0.059 | 20.60 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 2 | >> 0.0115 | >> 0.059 | 20.60 |
|-------------|----------------|--------------|--------------|
| 3.1 | 0.015 | 0.066 | 20.60 |
| 3.2 | 0.012 | >> 0.056 | 20.65 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 3 | 0.0135 | 0.061 | 20.625 |
'-------------'----------------'--------------'--------------'
PHP 7.0
.-------------.----------------.--------------.--------------.
| Code | System time(s) | User time(s) | Memory (MiB) |
|-------------|----------------|--------------|--------------|
| 1.1 | 0.009 | 0.010 | 16.69 |
| 1.2 | 0.012 | 0.013 | >> 16.13 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 1 | 0.0105 | 0.0115 | >> 16.41 |
|-------------|----------------|--------------|--------------|
| 2.1 | >> 0.008 | 0.011 | 16.65 |
| 2.2 | >> 0.008 | 0.011 | 16.70 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 2 | >> 0.008 | 0.011 | 16.675 |
|-------------|----------------|--------------|--------------|
| 3.1 | >> 0.008 | 0.012 | 16.68 |
| 3.2 | >> 0.008 | >> 0.008 | 16.69 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 3 | >> 0.008 | >> 0.010 | 16.685 |
'-------------'----------------'--------------'--------------'
PHP 7.1
.-------------.----------------.--------------.--------------.
| Code | System time(s) | User time(s) | Memory (MiB) |
|-------------|----------------|--------------|--------------|
| 1.1 | >> 0.011 | 0.011 | 24.18 |
| 1.2 | 0.021 | 0.012 | >> 23.23 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 1 | 0.016 | >> 0.0115 | >> 23.705 |
|-------------|----------------|--------------|--------------|
| 2.1 | 0.014 | 0.012 | 24.22 |
| 2.2 | 0.014 | 0.011 | 24.22 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 2 | >> 0.014 | >> 0.0115 | 24.22 |
|-------------|----------------|--------------|--------------|
| 3.1 | 0.014 | 0.014 | 24.23 |
| 3.2 | 0.014 | >> 0.010 | 24.17 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 3 | >> 0.014 | 0.012 | 24.20 |
'-------------'----------------'--------------'--------------'
PHP 7.2
.-------------.----------------.--------------.--------------.
| Code | System time(s) | User time(s) | Memory (MiB) |
|-------------|----------------|--------------|--------------|
| 1.1 | >> 0.003 | 0.017 | 19.41 |
| 1.2 | 0.013 | 0.010 | >> 17.65 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 1 | >> 0.008 | 0.0135 | >> 18.53 |
|-------------|----------------|--------------|--------------|
| 2.1 | 0.012 | >> 0.009 | 19.08 |
| 2.2 | 0.010 | 0.010 | 19.33 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 2 | 0.011 | >> 0.0905 | 19.205 |
|-------------|----------------|--------------|--------------|
| 3.1 | 0.010 | 0.014 | 19.45 |
| 3.2 | 0.007 | 0.011 | 19.39 |
| |-- -- -- -- -- -|-- -- -- -- --|-- -- -- -- --|
| (average) 3 | 0.0085 | 0.0125 | 19.42 |
'-------------'----------------'--------------'--------------'
Заключение
Для системного времени способ быстрее (0,003 секунды) заключается в использовании массивов объединения (с неустановленным значением) в PHP 7.2.0
.
Для пользовательского времени способ быстрее (0,003 секунды) - использовать конкатенацию oneline без сброса в PHP 7.0.22
.
Для использования памяти , " самый экономичный " (14,47 МиБ)можно использовать объединить массив без сброса в PHP 7.0.14
.