Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

переменная нужна для memory_get_usage, чистится после выполнения функции #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
sergey-dryabzhinsky merged 3 commits into rusoft:master from ryr:master
May 30, 2017

Conversation

ryr
Copy link
Contributor

@ryr ryr commented May 26, 2017

это нужно для столбца MEMORY

@ryr ryr changed the title (削除) переменная нужна для memory_get_usage, чистится автоматом (削除ここまで) (追記) переменная нужна для memory_get_usage, чистится после выполнения функции (追記ここまで) May 26, 2017
Copy link
Member

Подожди.

Ты хочешь, чтобы в столбце MEMORY выводилось сколько памяти было запрошено при выполнении теста?

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

Copy link
Contributor Author

ryr commented May 26, 2017
edited
Loading

Ты хочешь, чтобы в столбце MEMORY выводилось сколько памяти было запрошено при выполнении теста?

да, для этого и добавил этот столбец :)

Или сохранять значение по памяти в переменную, а тестовые переменные очищать.

php автоматом очищает переменные после выполнения функций, потому в столбце memory только напротив concat большое значение

Copy link
Member

Тогда надо везде unset убрать, во всех тестах перед return.

Copy link
Contributor Author

ryr commented May 29, 2017

Нашел unset в test_13_Array_Fill и test_14_Array_Unset
В array_fill имеет смысл убрать, а array_unset тестит unset, здесь это нужно.

Кстати, в array_unset тайминг некорректен т.к. учитывается еще range. По идее сначала надо наполнить массив, а потом определять $time_start, могу заодно это переписать.

Еще обратил внимание, что $s определяется в цикле и коммит 4156024 не нужен

Copy link
Contributor Author

ryr commented May 30, 2017
edited
Loading

добавил отдельно тест наполнения массива, разница между ним и array_unset показывает скорость работы unset
так же эти тесты показали, что php7 экономнее использует память для массивов

bench.php Outdated
$time_start = get_microtime();
for ($n = 0; $n < $arrayTestLoopLimit; ++$n) {
$x = range(0, $arrayDimensionLimit);
for ($i = 0; $i < $arrayDimensionLimit; ++$i) {
Copy link
Member

@sergey-dryabzhinsky sergey-dryabzhinsky May 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Должно быть $i++ в цикле

bench.php Outdated
$x[$i] = range(0, $arrayDimensionLimit);
}
}
return format_result_test(get_microtime() - $time_start, pow($arrayDimensionLimit, 2) * $arrayTestLoopLimit, memory_get_usage(true));
Copy link
Member

@sergey-dryabzhinsky sergey-dryabzhinsky May 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Должно быть $arrayDimensionLimit * $arrayTestLoopLimit, т.к. считается кол-во операций в php.

bench.php Outdated
$time_start = get_microtime();
for ($n = 0; $n < $arrayTestLoopLimit; ++$n) {
$x = range(0, $arrayDimensionLimit);
for ($i = 0; $i < $arrayDimensionLimit; ++$i) {
Copy link
Member

@sergey-dryabzhinsky sergey-dryabzhinsky May 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$i++

bench.php Outdated
for ($j = 0; $j < $arrayDimensionLimit; ++$j) {
unset($X[$i][$j]);
for ($i = $arrayDimensionLimit; $i >= 0; $i--) {
for ($j = 0; $j <= $arrayDimensionLimit; ++$j) {
Copy link
Member

@sergey-dryabzhinsky sergey-dryabzhinsky May 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$j++

Copy link
Member

Добавил комментарии к коду

Copy link
Contributor Author

ryr commented May 30, 2017

сразу хочу уточнить: во всех функциях где есть for(...;++$) заменить ++$ на $++, или только в прокомментированных?
на самом деле без разницы ++$ или $++ в for(...), внутри цикла значение не меняется

Copy link
Member

sergey-dryabzhinsky commented May 30, 2017
edited
Loading

Только в прокомментированных

Copy link
Member

Ок

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Reviewers

@sergey-dryabzhinsky sergey-dryabzhinsky sergey-dryabzhinsky left review comments

Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /