Bonjour,
CPU : Raspberry PI 4 B
OS : RASPBIAN
Langage : LAZARUS 2.0.0 + dfsg - 2
Compilateur : FPC 3.0.4
Je cherche à faire un genre de "chrono" pour mesurer des temps d'exécution de routine, donc avec une précision à la µs.
Mes recherches m'ont amenées à trouver l'exemple ci dessous, mais que je n'arrive pas à faire fonctionner.
D'après ce que j'en ai compris, j'utilise une librairie en "C" dans Lazarus, je pense que cette utilisation me pose des problèmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 unit UCompteurNano; {$mode objfpc}{$H+} interface uses Classes, baseUnix, SysUtils, cthreads, Ctypes; Procedure DebCompteur; function FinCompteur:string; Const CLOCK_MONOTONIC = 1; Type timespec = record tv_sec : time_t; tv_nsec : clong; end; var startTime : timespec; EndTime : timespec; Procedure clock_gettime(clk_id : cint; tp:ptimespec); cdecl; external 'C' name 'clock_gettime'; implementation Procedure DebCompteur; begin clock_gettime(CLOCK_MONOTONIC, @startTime); end; function FinCompteur:string; Var duree:Int64; begin clock_gettime(CLOCK_MONOTONIC, @EndTime); duree:=(EndTime.tv_sec - StartTime.tv_sec)*1000000000; duree:=duree + (EndTime. tv_nsec - StartTime.tv_nsec); result:=IntToStr(duree) + 'ns'; end; end.
De plus je ne sais pas si cette librairie est installée sur mon Raspberry.
Lorsque je met les deux unités suivantes "cthreads, Ctypes", le code se compile, mais le programme ne se lance plus.
Si j'ajoute l'appel à la " DLL => clock_gettime ", le code ne se compile plus.
Si quelqu'un a des idées, je suis bien sur preneur !
bonne soirée.
Partager