<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: os.sysdate() . Что-то в ней не так..]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме os.sysdate() . Что-то в ней не так.. форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 02 May 2026 21:15:14 +0300</pubDate>
		<item>
			<title>os.sysdate() . Что-то в ней не так..  </title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message74013/topic8468/">os.sysdate() . Что-то в ней не так..  </a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Опять неграмотным придуркам что-то не так. Дату им с точностью до микросекунды подавай. :На кой она вам сдалась, бараны? И что за половинчатое требование? Даёшь нано-пикосекунды! У меня эта хрень используется... ах, вообще не используется. Только &nbsp;os.date, только для лога и только с точностью до секунд. <br />
			<i>24.01.2024 09:41:47, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message74013/topic8468/</link>
			<guid>http://forum.quik.ru/messages/forum10/message74013/topic8468/</guid>
			<pubDate>Wed, 24 Jan 2024 09:41:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.sysdate() . Что-то в ней не так..  </title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message74005/topic8468/">os.sysdate() . Что-то в ней не так..  </a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_PZ2ODGVk" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Что не так с вашей функцией os.sysdate() ?<br />=============<br /> &nbsp; &nbsp;Чтобы не повторяться ссылка: <noindex><a href="https://forum.quik.ru/messages/forum10/message73949/topic8137/#message73949" target="_blank" rel="nofollow">https://forum.quik.ru/messages/forum10/message73949/topic8137/#message73949</a></noindex><br /> пункт 4). <br />
			<i>24.01.2024 08:03:28, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message74005/topic8468/</link>
			<guid>http://forum.quik.ru/messages/forum10/message74005/topic8468/</guid>
			<pubDate>Wed, 24 Jan 2024 08:03:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>os.sysdate() . Что-то в ней не так..  </title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message73894/topic8468/">os.sysdate() . Что-то в ней не так..  </a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день,<br />Вопрос к разработчикам<br />В документации на библиотеку QLua заявлено, что <br />os.sysdate() возвращает системное время с точность до микросекунды.<br />------------------------<br />Это означает, как я понимаю, что если я получу с помощью этой функции время в двух точках скрипта, то разница даст мне время исполнения этого участка с точностью до микросекунды.<br />------------------<br />Я написал такой тест:
====code====
<pre>paths = "D:/nkarray/"
package.cpath =paths.."?.dll";
require "nkarray"
event=nkevent.Create("event");
---------------------
name="bot";&nbsp;&nbsp;-- имя робота
path = "D:/QUIK_SCRIPT/nk_bot/"&nbsp;&nbsp; --папка где разместим лог файл
Log=io.open(path..name..".log","w")&nbsp;&nbsp; -- создаем лог файл для записи
------------
_N=0; _tN={};
----------------------
function main()
-----------------------
&nbsp;&nbsp;&nbsp;while fconnect do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if getInfoParam("SERVERTIME") then &nbsp;&nbsp;&nbsp;fconnect=2;&nbsp;&nbsp;end
------------------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while fconnect==2 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w=nkevent.wait(event); --ждем события
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while _N&#62;0 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t=_tN&#91;_N&#93;; _N=_N-1
&nbsp;&nbsp;&nbsp;----------------------
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tim2=0.1*nklib.stopA();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T=os.sysdate();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local _,_,_,t3=nkvm.D(); --HMS,YMD,dHMS,dt,ns
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1=60.*(60.*T.hour+T.min)+T.sec+0.001*(T.ms+0.001*T.mcs);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local x1=1000000.*(t1-t&#91;1&#93;)//1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local x2=1000000.*(t3-t&#91;2&#93;)//1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:write("os.sysdate OnParam(сек)="..t&#91;1&#93;..", os.sysdate main(сек)="..t1..",разность 1(мкс)=="..(t1-t&#91;1&#93;).."&#92;n");Log:flush();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:write("nkvm.D OnParam(мкс)="..t&#91;2&#93;..", nkvm.D main(мкс)="..t3..", разность 2(мкс)="..(t3-t&#91;2&#93;).."&#92;n");Log:flush();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:write("разность 3 по высокоточному таймеру OC(мкс)="..tim2.."&#92;n&#92;n");Log:flush();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;end
end
----------------------------
function OnInit(pfile) &nbsp;&nbsp;&nbsp;fconnect=isConnected(); end
----------------
function OnParam(c,s)
local T=os.sysdate(); local tim=60.*(60.*T.hour+T.min)+T.sec+0.001*(T.ms+0.001*T.mcs)
nklib.startA();&nbsp;&nbsp;&nbsp;local _,_,_,tim1=nkvm.D(); &nbsp;&nbsp;&nbsp;_N=_N+1; _tN&#91;_N&#93;={tim,tim1};
nkevent.Set(event);
end
</pre>
=============
В котором я замеряю системное время в колбеке on Param &nbsp;в строке 
====code====
<pre>local T=os.sysdate(); local tim=60.*(60.*T.hour+T.min)+T.sec+0.001*(T.ms+0.001*T.mcs)

</pre>
=============
и передаю его в функцию main<br />в функции main я снова получаю системное время в строках
====code====
<pre>T=os.sysdate();

t1=60.*(60.*T.hour+T.min)+T.sec+0.001*(T.ms+0.001*T.mcs);

</pre>
=============
вычисляю разность этих показаний в строке
====code====
<pre>local x1=1000000.*(t1-t&#91;1&#93;)//1;</pre>
=============
и все три значения вывожу в лог файл, который покажу ниже.<br />----------------------<br />кроме того, для сравнения я делаю тоже самое на основе собственной функции времени а также своего таймера который реализован на высокоточном таймере процессора. &nbsp;Но это так, чтобы показать, что действительность не такая, как показывает ваша функция.<br />и вот результат :
====code====
<pre>os.sysdate OnParam(сек)=78115.93613, os.sysdate main(сек)=78115.93613,разность 1(мкс)==0.0
nkvm.D OnParam(мкс)=78114968.3296, nkvm.D main(мкс)=78114968.3932, разность 2(мкс)=0.063599988818169
разность 3 по высокоточному таймеру OC(мкс)=59.8

os.sysdate OnParam(сек)=78115.998828, os.sysdate main(сек)=78115.998828,разность 1(мкс)==0.0
nkvm.D OnParam(мкс)=78114999.9583, nkvm.D main(мкс)=78115000.0045, разность 2(мкс)=0.046200007200241
разность 3 по высокоточному таймеру OC(мкс)=30.3

os.sysdate OnParam(сек)=78115.870038, os.sysdate main(сек)=78115.870038,разность 1(мкс)==0.0
nkvm.D OnParam(мкс)=78115435.1791, nkvm.D main(мкс)=78115435.2126, разность 2(мкс)=0.033499985933304
разность 3 по высокоточному таймеру OC(мкс)=24.3
</pre>
=============
На основе Вашей функции<B> разность показаний равна НУЛЮ</B><B>.</B><br />Мои функции показывают разность от 63 до 24 мкс, что более соответствует реальному процессу, <br />так как процессор у меня далеко не квантовый.<br />--------------------<br />Вопрос:<br /><B>Что не так с вашей функцией os.sysdate() ?</B> <br />
			<i>19.01.2024 21:01:22, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message73894/topic8468/</link>
			<guid>http://forum.quik.ru/messages/forum10/message73894/topic8468/</guid>
			<pubDate>Fri, 19 Jan 2024 21:01:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
