История изменений
Исправление CrX, (текущая версия) :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.
Не очень, правда, понятно, зачем это вообще хоть кому-то может быть надо…
upd:
Там сам пустой цикл дофига занимает, поэтому придётся так:
#!/bin/bash
iterations=10000000
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 0 ]
do
((counter--))
done
endtime=$(date +%s)
echo Empty loop is $((endtime-starttime)) seconds
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 0 ]
do
cd /usr/bin
((counter--))
cd /usr/lib
done
endtime=$(date +%s)
echo cd loop is $((endtime-starttime)) seconds
Вывод:
Empty loop is 24 seconds
cd loop is 114 seconds
Соответственно разница — 90 секунд. Делим пополам (поскольку в каждой итерации два раза вызывается cd, а не один) — 45 секунд на 10 млн cd
. Соответственно время выполнения одного cd — примерно 4.5 микросекунды. Примерно. Порядок такой; конечно, на деле может быть и 3 и 5 микросекунд. Но не полсекунды и не наносекунду.
Можешь у себя замерить таким же образом.
И если не секрет, нафига оно тебе?
Исправление CrX, :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.
Не очень, правда, понятно, зачем это вообще хоть кому-то может быть надо…
Там сам пустой цикл дофига занимает, поэтому придётся так:
upd:
#!/bin/bash
iterations=10000000
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 0 ]
do
((counter--))
done
endtime=$(date +%s)
echo Empty loop is $((endtime-starttime)) seconds
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 0 ]
do
cd /usr/bin
((counter--))
cd /usr/lib
done
endtime=$(date +%s)
echo cd loop is $((endtime-starttime)) seconds
Вывод:
Empty loop is 24 seconds
cd loop is 114 seconds
Соответственно разница — 90 секунд. Делим пополам (поскольку в каждой итерации два раза вызывается cd, а не один) — 45 секунд на 10 млн cd
. Соответственно время выполнения одного cd — примерно 4.5 микросекунды. Примерно. Порядок такой; конечно, на деле может быть и 3 и 5 микросекунд. Но не полсекунды и не наносекунду.
Можешь у себя замерить таким же образом.
И если не секрет, нафига оно тебе?
Исправление CrX, :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.
Не очень, правда, понятно, зачем это вообще хоть кому-то может быть надо…
Там сам пустой цикл дофига занимает, поэтому придётся так:
upd:
#!/bin/bash
iterations=10000000
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 0 ]
do
((counter--))
done
endtime=$(date +%s)
echo Empty loop is $((endtime-starttime)) seconds
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 0 ]
do
cd /usr/bin
((counter--))
cd /usr/lib
done
endtime=$(date +%s)
echo cd loop is $((endtime-starttime)) seconds
Вывод:
Empty loop is 24 seconds
cd loop is 114 seconds
Соответственно разница — 90 секунд. Делим пополам (поскольку в каждой итерации два раза вызывается cd, а не один) — 45 секунды на 10 млн cd
. Соответственно время выполнения одного cd — примерно 4.5 микросекунды. Примерно. Порядок такой; конечно, на деле может быть и 3 и 5 микросекунд. Но не полсекунды и не наносекунду.
Можешь у себя замерить таким же образом.
И если не секрет, нафига оно тебе?
Исправление CrX, :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.
Не очень, правда, понятно, зачем это вообще хоть кому-то может быть надо…
Там сам пустой цикл дофига занимает, поэтому придётся так:
upd:
#!/bin/bash
iterations=10000000
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 1000 ]
do
((counter--))
done
endtime=$(date +%s)
echo Empty loop is $((endtime-starttime)) seconds
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 1000 ]
do
cd /usr/bin
((counter--))
cd /usr/lib
done
endtime=$(date +%s)
echo cd loop is $((endtime-starttime)) seconds
Вывод:
Empty loop is 27 seconds
cd loop is 114 seconds
Соответственно разница — 87 секунд. Делим пополам (поскольку в каждой итерации два раза вызывается cd, а не один) — 43.5 секунды на 10 млн cd
. Соответственно время выполнения одного cd — примерно 4.35 микросекунды. Примерно. Порядок такой; конечно, на деле может быть и 3 и 5 микросекунд. Но не полсекунды и не наносекунду.
Можешь у себя замерить таким же образом.
И если не секрет, нафига оно тебе?
Исправление CrX, :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.
Не очень, правда, понятно, зачем это вообще хоть кому-то может быть надо…
Там сам пустой цикл дофига занимает, поэтому придётся так:
upd:
#!/bin/bash
iterations=10000000
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 1000 ]
do
((counter--))
done
endtime=$(date +%s)
echo Empty loop is $((endtime-starttime)) seconds
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 1000 ]
do
cd /usr/bin
((counter--))
cd /usr/lib
done
endtime=$(date +%s)
echo cd loop is $((endtime-starttime)) seconds
Вывод:
Empty loop is 27 seconds
cd loop is 114 seconds
Соответственно разница — 87 секунд. Делим пополам (поскольку в каждой итерации два раза вызывается cd, а не один) — 43.5 секунды на 10 млн cd
. Соответственно время выполнения одного cd — примерно 4.35 микросекунды. Примерно. Порядок такой; конечно, на деле может быть и 3 и 5 микросекунд. Но не полсекунды и не наносекунду.
Исправление CrX, :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.
Не очень, правда, понятно, зачем это вообще хоть кому-то может быть надо…
Там сам пустой цикл дофига занимает, поэтому придётся так:
upd:
#!/bin/bash
iterations=10000000
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 1000 ]
do
((counter--))
done
endtime=$(date +%s)
echo Empty loop is $((endtime-starttime)) seconds
counter=$iterations
starttime=$(date +%s)
while [ $counter -ge 1000 ]
do
cd /usr/bin
((counter--))
cd /usr/lib
done
endtime=$(date +%s)
echo cd loop is $((endtime-starttime)) seconds
Вывод:
Empty loop is 27 seconds
cd loop is 114 seconds
Соответственно разница — 87 секунд. Делим пополам (поскольку в каждой итерации два раза вызывается cd, а не один) — 43.5 секунды на 10 млн cd
. Соответственно время выполнения одного cd — примерно 4.35 микросекунды. Примерно. Порядок такой, конечно, на деле может быть и 3 и 5 микросекунд. Но не полсекунды и не наносекунду.
Исправление CrX, :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.
Не очень, правда, понятно, зачем это вообще хоть кому-то может быть надо…
Исходная версия CrX, :
Во-первых, у тебя ошибка — кавычки не нужны. Команды "cd /e"
(как единого файла) нет (и даже быть не может из-за слеша — он недопустим в именах файлов).
Во-вторых, время на cd будет 0.000, очевидно. Если прям очеь-очень хочется замерить непонятно что, сделай небольшой скрипт, первой строкой запоминаешь текущее время, потом миллиард (а лучше триллион) раз cd туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.