LINUX.ORG.RU

История изменений

Исправление 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 туда-сюда, в конце из текущего времени вычитаешь то, что запомнил в начале. Ну и делишь на свой миллиард, чтобы получить среднее.