Pagina 1 di 1

ab e gnuplot

Inviato: sab 26 mag 2007, 10:48
da nik600
Ciao

vorrei realizzare dei grafici con l'output di ab.

io eseguo il segente comando:

Codice: Seleziona tutto

/usr/local/apache2/bin/ab -g out -n 1000 -c 50 http://localhost/miosito/
che mi da una cosa del genere:

Codice: Seleziona tutto

starttime	seconds	ctime	dtime	ttime	wait
Sat May 26 10:41:20 2007	1180168880895729	1	288	289	284
Sat May 26 10:41:20 2007	1180168880895884	1	293	294	293
Sat May 26 10:41:20 2007	1180168880895903	1	299	300	298
Sat May 26 10:41:20 2007	1180168880895924	1	304	305	304
Sat May 26 10:41:20 2007	1180168880895945	0	310	310	309
Sat May 26 10:41:20 2007	1180168880895807	1	315	316	315
Sat May 26 10:41:20 2007	1180168880895970	0	316	316	315
provo a generare il grafico con gnuplot ma ottengo errori:

Codice: Seleziona tutto

gnuplot> load "out" 

gnuplot> starttime      seconds ctime   dtime   ttime   wait
         ^
         "out", line 1: invalid command

gnuplot> plot "out" 
              ^
         Bad data on line 1

gnuplot> 
ho provato a togliere anche la riga delle label ma non va, e si che dal man l'opzione è proprio quella:

Codice: Seleziona tutto

       -g gnuplot file
                   Write  all  measured values out as a 'gnuplot' or TSV (Tab separate values) file. This file can easily
                   be imported into packages like Gnuplot, IDL, Mathematica, Igor or even Excel. The labels  are  on  the
                   first line of the file.


Inviato: sab 26 mag 2007, 11:28
da ccts2002
non so se è quello che vuoi...comunque...
una volta che hai l'output su un file (il tuo penso sia

Codice: Seleziona tutto

out
) entri in gnuplot e digiti:

Codice: Seleziona tutto

plot "out" using #1:#2
dove

Codice: Seleziona tutto

#1
e

Codice: Seleziona tutto

#2
sono le colonne che vuoi rappresentare rispettivamente come x e come y. per esempio se volessi ctime come x e dtime come y, digiti:

Codice: Seleziona tutto

plot "out" using 3:4
l'unico problema è che gnuplot vede tutti gli spazi, o i caratteri non numerici, come delimitatori di colonna, quindi:

Codice: Seleziona tutto

Sat May 26 10:41:20 2007  
sono in realtà 7 colonne della tabella. potresti evitare il problema delimitando la data con due doppi apici:

Codice: Seleziona tutto

"Sat May 26 10:41:20 2007 " 
basta che ti scriva un programmino che faccia tutto al posto tuo
:D :D

ciao, se non sono stato chiaro fammi sapere!!!

Inviato: sab 26 mag 2007, 11:46
da nik600
chiarissimo!

grazie mille

Inviato: sab 26 mag 2007, 12:07
da ccts2002
per esempio cosi...

Codice: Seleziona tutto

#include<stdio.h>
#include<string.h>

int main(){
 int i,j;
 char prova;
 char sin[100],sout[102],filename[100];
 printf("input file: ");
 scanf("%s",filename);
 FILE *fp=fopen(filename,"r");
 printf("output file: ");
 scanf("%s",filename);
 FILE *out=fopen(filename,"w");
 i=j=0;
 while(!feof(fp)){
  i++;
  fgets(sin,99,fp);
  if((i-1)!=0){
   sout[0]='"';
   for(j=0;j<24;j++){
    sout[j+1]=sin[j];
   }
   sout[j+1]='"';
   for(;j<=strlen(sin);j++){
    sout[j+2]=sin[j];
   }
   fprintf(out,"%s",sout);
  }
  else{
   fprintf(out,"%s",sin);
   continue;
  }
 }
 fclose(fp);
 fclose(out);
}
ciaoooooo