making a perfmeter
This commit is contained in:
parent
b4aa5445a2
commit
67b26a733b
4
Makefile
4
Makefile
@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CCOPT = -Wall -g
|
CCOPT = -Wall -g
|
||||||
CLIB = core/libdd2m-core.a
|
CLIB = core/libdd2m-core.a viz/libdd2m-viz.a
|
||||||
|
|
||||||
all: essai fake-values
|
all: essai fake-values
|
||||||
|
|
||||||
# ---------------------------------------------
|
# ---------------------------------------------
|
||||||
|
|
||||||
essai: essai.c Makefile $(CLIB)
|
essai: essai.c Makefile $(CLIB)
|
||||||
$(CC) ${CCOPT} $< $(CLIB) -o $@
|
$(CC) ${CCOPT} $< $(CLIB) -lncurses -o $@
|
||||||
|
|
||||||
fake-values: fake-values.c Makefile $(CLIB)
|
fake-values: fake-values.c Makefile $(CLIB)
|
||||||
$(CC) ${CCOPT} $< $(CLIB) -o $@
|
$(CC) ${CCOPT} $< $(CLIB) -o $@
|
||||||
|
@ -14,10 +14,10 @@ extern int verbosity;
|
|||||||
|
|
||||||
/* --------------------------------------------------------------- */
|
/* --------------------------------------------------------------- */
|
||||||
|
|
||||||
int get_loadavg(double *where)
|
int get_loadavg(float *where)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
double loads[3];
|
float loads[3];
|
||||||
int foo;
|
int foo;
|
||||||
|
|
||||||
if ( ! (fp=fopen("/proc/loadavg", "r")) ) {
|
if ( ! (fp=fopen("/proc/loadavg", "r")) ) {
|
||||||
@ -25,10 +25,10 @@ if ( ! (fp=fopen("/proc/loadavg", "r")) ) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
foo = fscanf(fp, "%lf %lf %lf", loads, loads+1, loads+2);
|
foo = fscanf(fp, "%f %f %f", loads, loads+1, loads+2);
|
||||||
if (3 != foo) fprintf(stderr, "%s : read %d vals\n", __func__, foo);
|
if (3 != foo) fprintf(stderr, "%s : read %d vals\n", __func__, foo);
|
||||||
|
|
||||||
memcpy(where, loads, 3 * sizeof(double));
|
memcpy(where, loads, 3 * sizeof(float));
|
||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
int get_loadavg(double *where);
|
int get_loadavg(float *where);
|
||||||
|
|
||||||
|
6
core/t.c
6
core/t.c
@ -18,16 +18,16 @@ Configuration config;
|
|||||||
/* ---------------------------------------------------------------- */
|
/* ---------------------------------------------------------------- */
|
||||||
int essai_sysmetrics(int k)
|
int essai_sysmetrics(int k)
|
||||||
{
|
{
|
||||||
double dvalues3[3];
|
float fvalues3[3];
|
||||||
int foo;
|
int foo;
|
||||||
|
|
||||||
foo = get_loadavg(dvalues3);
|
foo = get_loadavg(fvalues3);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "err get load avg %d\n", foo);
|
fprintf(stderr, "err get load avg %d\n", foo);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("load avg %f %f %f\n", dvalues3[0], dvalues3[1], dvalues3[2]);
|
printf("load avg %f %f %f\n", fvalues3[0], fvalues3[1], fvalues3[2]);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
47
essai.c
47
essai.c
@ -6,21 +6,44 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <curses.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#include "core/utils.h"
|
#include "core/utils.h"
|
||||||
#include "core/sysmetrics.h"
|
#include "core/sysmetrics.h"
|
||||||
|
#include "viz/curses/ecran.h"
|
||||||
|
|
||||||
int verbosity;
|
int verbosity;
|
||||||
|
|
||||||
/* --------------------------------------------------------------- */
|
/* --------------------------------------------------------------- */
|
||||||
|
int affiche_loadavg(int nbloops, int k)
|
||||||
|
{
|
||||||
|
int idx, foo;
|
||||||
|
float lds[3];
|
||||||
|
|
||||||
|
for (idx=0; idx<nbloops; idx++) {
|
||||||
|
|
||||||
|
foo = get_loadavg(lds);
|
||||||
|
if (foo) fprintf(stderr, "get loadavg -> %d\n", foo);
|
||||||
|
|
||||||
|
foo = aff7segs_float(stdscr, 4, 9, lds[0]);
|
||||||
|
foo = aff7segs_float(stdscr, 14, 9, lds[1]);
|
||||||
|
foo = aff7segs_float(stdscr, 24, 9, lds[2]);
|
||||||
|
|
||||||
|
usleep(200*1000);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* --------------------------------------------------------------- */
|
||||||
|
static void finish(int signal)
|
||||||
|
{
|
||||||
|
endwin(); exit(0);
|
||||||
|
}
|
||||||
/* --------------------------------------------------------------- */
|
/* --------------------------------------------------------------- */
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int opt, foo;
|
int opt, foo;
|
||||||
double loads[3];
|
|
||||||
int il[3];
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "v")) != -1) {
|
while ((opt = getopt(argc, argv, "v")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
@ -29,15 +52,19 @@ while ((opt = getopt(argc, argv, "v")) != -1) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foo = get_loadavg(loads);
|
|
||||||
if (foo) fprintf(stderr, "get loadavg -> %d\n", foo);
|
|
||||||
for (foo=0; foo<3; foo++) {
|
|
||||||
il[foo] = ((int)(loads[foo] * 90.0)) & 0x3ff;
|
|
||||||
if (verbosity)
|
|
||||||
fprintf(stderr, "%f -> %d\n", loads[foo], il[foo]);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("%ld %d %d %d %d\n", time(NULL), getpid()%84, il[0], il[1], il[2]);
|
initscr();
|
||||||
|
nonl(); cbreak(); noecho();
|
||||||
|
keypad(stdscr, TRUE); /* acces aux touches 'curseur' */
|
||||||
|
fond_ecran(" Demonstrator ");
|
||||||
|
|
||||||
|
affiche_loadavg(10000, 0);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* plop, on a fini, il faut restaurer la console
|
||||||
|
*/
|
||||||
|
finish(0);
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user