<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Команда time вывод в мс.</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html</link>
    <description>Здравствуйте!&lt;br&gt;&lt;br&gt;При использовании команды time --format хочу вывод времени в милисекундах при форматированном выводе.&lt;br&gt;&lt;br&gt;Если использовать команду без аргументов, команда выводит следующим образом _и_такой_вывод_меня_устраивает_:&lt;br&gt;# time ./my_prog &amp;lt; input.txt&lt;br&gt;&amp;gt; real0m0,058s&lt;br&gt;&amp;gt; user0m0,019s&lt;br&gt;&amp;gt; sys0m0,040s&lt;br&gt;&lt;br&gt;Но для использования флагов, необходимо использовать абсолютный путь, но от этого меняется формат вывода по default как указано в man 1 time (переменная окружения $TIME не задана), а точность указывается на один порядок меньше:&lt;br&gt;# /bin/time ./my_prog &amp;lt; input.txt&lt;br&gt;&amp;gt; 0.02user 0.02system 0:00.05elapsed 96&#037;CPU (0avgtext+0avgdata 2428maxresident)k&lt;br&gt;&amp;gt; 0inputs+0outputs (0major+302minor)pagefaults 0swaps&lt;br&gt;&lt;br&gt;Далее проделываю использую флаги -p или -f и вывод тоже с точностью на порядок меньше:&lt;br&gt;# /bin/time -p ./my_prog &amp;lt; input.txt&lt;br&gt;&amp;gt; real 0.05&lt;br&gt;&amp;gt; user 0.02&lt;br&gt;&amp;gt; sys 0.03&lt;br&gt;&lt;br&gt;# /bin/time -f &quot;real&#092;t&#037;e&#092;nuser&#092;t&#037;U&#092;nsys&#092;t&#037;S&quot; ./my_prog &amp;lt; input.txt&lt;br&gt;&amp;gt; real 0.05&lt;br&gt;&amp;gt; user 0.02&lt;br&gt;&amp;gt; sys 0.03&lt;br&gt;&lt;br&gt;#&lt;br&gt;</description>

<item>
    <title>Команда time вывод в мс. (evi)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#12</link>
    <pubDate>Mon, 09 Sep 2024 20:57:25 GMT</pubDate>
    <description>&amp;gt; Но при этом данная конструкция не работает: &lt;br&gt;&amp;gt; $time echo test 2&amp;gt; /dev/null &lt;br&gt;&lt;br&gt;Всё, победа! Надо было просто экранировать.&lt;br&gt;&lt;br&gt;$&#123; time echo test; &#125; 2&amp;gt; /dev/null&lt;br&gt;test&lt;br&gt;$&lt;br&gt;</description>
</item>

<item>
    <title>Команда time вывод в мс. (evi)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#11</link>
    <pubDate>Mon, 09 Sep 2024 20:50:56 GMT</pubDate>
    <description>&amp;gt; Куда выводится у bash&apos;овского time пока загадка. &lt;br&gt;&lt;br&gt;Проверил исходники bash, файл execute_cmd.c. Там есть подпрограмма, которая судя по всему и выводит время на экран:&lt;br&gt;static void print_formatted_time (fp, format, rs, rsf, us, usf, ss, ssf, cpu)  &lt;br&gt; &lt;br&gt;И я нашёл только один вызов данной подпрограммы:&lt;br&gt;1464     print_formatted_time (stderr, time_format, rs, rsf, us, usf, ss, ssf, cpu);&lt;br&gt;&lt;br&gt;Но при этом данная конструкция не работает:&lt;br&gt;$time echo test 2&amp;gt; /dev/null&lt;br&gt;test&lt;br&gt;&lt;br&gt;real0m0.000s&lt;br&gt;user0m0.000s&lt;br&gt;sys0m0.000s&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Команда time вывод в мс. (evi)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#10</link>
    <pubDate>Mon, 09 Sep 2024 19:40:38 GMT</pubDate>
    <description>&amp;gt; Во время листинга (j, k, gg, G) исчезают строки которые вернула команда &lt;br&gt;&amp;gt; time. Вывод команды явно идёт не в stdout. Есть какая-то возможность &lt;br&gt;&amp;gt; определить какой номер потока у неё (если он, конечно, есть)?&lt;br&gt;&lt;br&gt;У /bin/time выводится в stderr. Куда выводится у bash&apos;овского time пока загадка.&lt;br&gt;&lt;br&gt;190 /* Output stream, stderr by default.  */                                        &lt;br&gt;191 static FILE *outfp;&lt;br&gt;...&lt;br&gt;650   outfp = stderr;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Команда time вывод в мс. (evi)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#9</link>
    <pubDate>Mon, 09 Sep 2024 17:15:18 GMT</pubDate>
    <description>&amp;gt; А сценарии запускать можно с шебангом &lt;br&gt;&amp;gt; #!/bin/bash &lt;br&gt;&lt;br&gt;Да, так и сделал. Заработало, но не всё гладко.&lt;br&gt;&lt;br&gt;Есть скрипт runtest.sh, в нём есть уже известная строка:&lt;br&gt;time ./my_prog &amp;lt; input.txt &amp;gt; /dev/null&lt;br&gt;&lt;br&gt;Проблема что когда конвеером передаю в less:&lt;br&gt;$ ./runtest &amp;#124; less&lt;br&gt;&lt;br&gt;Во время листинга (j, k, gg, G) исчезают строки которые вернула команда time. Вывод команды явно идёт не в stdout. Есть какая-то возможность определить какой номер потока у неё (если он, конечно, есть)?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Команда time вывод в мс. (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#8</link>
    <pubDate>Mon, 09 Sep 2024 16:56:21 GMT</pubDate>
    <description>Да, times не для хронометража.&lt;br&gt;А какая оболочка?&lt;br&gt;Запустите&lt;br&gt;echo $SHELL&lt;br&gt;&lt;br&gt;А сценарии запускать можно с шебангом &lt;br&gt;#!/bin/bash&lt;br&gt;&lt;br&gt;может тогда сработает. А если не получится - в принципе несложно модифицировать GNU time, исходный текст же есть. Надо только установить компилятор (gcc), build-essentials, make.&lt;br&gt;</description>
</item>

<item>
    <title>Команда time вывод в мс. (evi)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#7</link>
    <pubDate>Mon, 09 Sep 2024 14:44:27 GMT</pubDate>
    <description>&amp;gt; у меня: &lt;br&gt;&amp;gt; $ type time &lt;br&gt;&amp;gt; time является /usr/bin/time &lt;br&gt;&lt;br&gt;У меня:&lt;br&gt;$ type time&lt;br&gt;time is a shell keyword&lt;br&gt;&lt;br&gt;$ man bash&lt;br&gt;...&lt;br&gt;RESERVED WORDS&lt;br&gt;       Reserved words are words that have a special meaning to the shell.  The  follow&amp;#8208;&lt;br&gt;       ing  words are recognized as reserved when unquoted and either the first word of&lt;br&gt;       a command (see SHELL GRAMMAR below), the third word of a case or select  command&lt;br&gt;       (only  in  is  valid),  or  the  third word of a for command (only in and do are&lt;br&gt;       valid):&lt;br&gt;&lt;br&gt;       ! case  coproc  do done elif else esac fi for function if in select  then  until&lt;br&gt;       while &#123; &#125; time &#091;&#091; &#093;&#093;q&lt;br&gt;...&lt;br&gt;&lt;br&gt;&amp;gt; то есть в моей системе нет time как команды shell .&lt;br&gt;&amp;gt; Зато есть команда shell &apos;times&apos;: &lt;br&gt;&lt;br&gt;$time sleep 3&lt;br&gt;real0m3,012s&lt;br&gt;user0m0,003s&lt;br&gt;sys0m0,009s&lt;br&gt;&lt;br&gt;$ /bin/time -p sleep 3&lt;br&gt;real 3.00&lt;br&gt;user 0.00&lt;br&gt;sys 0.00&lt;br&gt;&lt;br&gt;$times sleep 3&lt;br&gt;0m0,353s 0m0,287s&lt;br&gt;0m19,345s 0m4,564s&lt;br&gt;&lt;br&gt;Что-то эта команда другое делает. Не хочу разбираться. :-) &lt;br&gt;&lt;br&gt;Почитать про сам time, который is shell key</description>
</item>

<item>
    <title>Команда time вывод в мс. (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#6</link>
    <pubDate>Mon, 09 Sep 2024 10:53:42 GMT</pubDate>
    <description>&amp;gt;А ещё оказывается есть time как shell keyword, которое &lt;br&gt;&amp;gt; вшито в ядро и оно умеет в ms. А есть /bin/time &lt;br&gt;&amp;gt; -- отдельный бинарник. В итоге, это две разные команды.&lt;br&gt;&lt;br&gt;у меня:&lt;br&gt;$ type time&lt;br&gt;time является /usr/bin/time&lt;br&gt;&lt;br&gt;то есть в моей системе нет time как команды shell .&lt;br&gt;Зато есть команда shell &apos;times&apos;:&lt;br&gt;&quot;times  Print  the  accumulated  user and system times for the shell and for pro&amp;#8208;&lt;br&gt;              cesses run from the shell.&quot;&lt;br&gt;&lt;br&gt;Проверим:&lt;br&gt;$ times date&lt;br&gt;0m0.039s 0m0.005s&lt;br&gt;0m0.000s 0m0.000s&lt;br&gt;&lt;br&gt;Работает.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Команда time вывод в мс. (evi)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#5</link>
    <pubDate>Sun, 08 Sep 2024 20:51:40 GMT</pubDate>
    <description>&amp;gt; В моей системе GNU time 1.7 .&lt;br&gt;&amp;gt; Скачал исходный текст этой программы с &lt;br&gt;&amp;gt; https://ftp.gnu.org/gnu/time/ &lt;br&gt;&amp;gt; Там точность жёстко забита в 2 цифры после точки: &lt;br&gt;&lt;br&gt;Тоже глянул. Действительно. А ещё оказывается есть time как shell keyword, которое вшито в ядро и оно умеет в ms. А есть /bin/time -- отдельный бинарник. В итоге, это две разные команды.&lt;br&gt;&lt;br&gt;Спасибо большое!&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Команда time вывод в мс. (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10479.html#4</link>
    <pubDate>Fri, 06 Sep 2024 15:01:19 GMT</pubDate>
    <description>В моей системе GNU time 1.7 .&lt;br&gt;Скачал исходный текст этой программы с &lt;br&gt;https://ftp.gnu.org/gnu/time/&lt;br&gt;&lt;br&gt;Там точность жёстко забита в 2 цифры после точки:&lt;br&gt;&lt;br&gt;    case &apos;S&apos;:/* System time.  */&lt;br&gt;      fprintf (fp, &quot;&#037;ld.&#037;02ld&quot;,&lt;br&gt;       resp-&amp;gt;ru.ru_stime.tv_sec,&lt;br&gt;       resp-&amp;gt;ru.ru_stime.TV_MSEC / 10);&lt;br&gt;      break;&lt;br&gt;    case &apos;U&apos;:/* User time.  */&lt;br&gt;      fprintf (fp, &quot;&#037;ld.&#037;02ld&quot;,&lt;br&gt;       resp-&amp;gt;ru.ru_utime.tv_sec,&lt;br&gt;       resp-&amp;gt;ru.ru_utime.TV_MSEC / 10);&lt;br&gt;      break;&lt;br&gt;&lt;br&gt;так что, надо программу модифицировать.&lt;br&gt;Или использовать Python:&lt;br&gt;&lt;br&gt;from datetime import datetime&lt;br&gt;date_start = datetime.now()&lt;br&gt;&lt;br&gt;Что- то запускаете&lt;br&gt;&lt;br&gt;print(&apos;Продолжительность работы    &apos;, datetime.now() - date_start) &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
