Název: Foxtrot - jak zjistit čas jednotlivých programů, popřípadě procesů? Přispěvatel: Erhard Mareček 20.07.2012, 12:24 Zjistit celkovou dobu smyčky ve Foxtrotu je snadné. Jak ale zjistit kolik času si vezmou jednotlivé programy, případně procesy?
Název: Re: Foxtrot - jak zjistit čas jednotlivých programů, popřípadě procesů? Přispěvatel: Petr Liskar 20.07.2012, 23:05 Zkuste použít funkci GetRTC na začátku a na konci měřeného úseku.
Název: Re: Foxtrot - jak zjistit čas jednotlivých programů, popřípadě procesů? Přispěvatel: Milan Bydžovský 21.07.2012, 13:37 Čas s přesností na stovky microsekund lze získa pomocí systémové instrukce.
Vytvořil jsem knihovnu SysTimerLib, kterou si můžete stáhnout zde: http://sdrv.ms/QjXxgC (http://sdrv.ms/QjXxgC) Knihovna obsahuje jedinou funkci get100us, která vrací hodnotu čítače. Použití může vypadat následovně: PROGRAM prgMain VAR start : UDINT; //pocatecni stav citace duration : UDINT; //doba trvani ve stovkach microsekund i : UINT; END_VAR start := get100us(); //zacatek mereneho useku FOR i := 0 TO 1000 DO i := i; END_FOR; //konec mereneho useku duration := get100us() - start; END_PROGRAM |