Dear all,
I want to test Dr.Dalesio mentioned throughputs:
> > Performance:
> > 68040 over 10 Mbit Ethernet
> > Gets
> > Propagation Delay 2 mS
> > Throughput 7.8K /sec
> > Puts
> > Propagation Delay 1 mS
> > Throughput 17K /sec
> > Monitors
> > Propagation Delay Dependent
> > Throughput 10K / sec
I got GET throughput is 7.3K/s. But for PUT, I only got 7.8K/s, much
more less than Bob's. I am not sure if I did the right way. The
followings are my source codes.
I have two questions:
1. What is propagation delay?
2. Because monitor only works when the channel value is changed, does
10K/s of monitor throughput mean the record should be processed in less
than 0.1ms?
I will appreciate if somebody could give me some advice & suggestions.
Best regards,
Lifang
/***********************************************************/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <cadef.h>
#define USAGE "usage: ezee <PV name> MAXLOOP"
int main(int argc, char **argv)
{
register int i;
chid chan;
dbr_string_t strval;
int status, MAXLOOP=1000000;
dbr_float_t value[1000000];
struct timespec times1, times2;
double tm1, tm2, rate;
if(argc != 3){
printf("%s\n", USAGE);
exit(-1);
}
status = ca_task_initialize();
SEVCHK(status, "Unable to initialize");
if (status != ECA_NORMAL)
exit(-1);
status = ca_search(argv[1], &chan);
if (status != ECA_NORMAL){
printf("problem establishing connection to
%s.",argv[1]);
exit(-1);
}
status = ca_pend_io(1.0);
if (status != ECA_NORMAL){
printf("%s: Not Found\n", argv[1]);
exit(-1);
}
MAXLOOP = atoi(argv[2]);
for(i=0; i<MAXLOOP; i++)value[i] = i;
clock_gettime(CLOCK_REALTIME, ×1);
for(i = 0; i < MAXLOOP; i++)
{
status = ca_rput(chan, &value[i]);
SEVCHK(status, "Error in call to ca_bput()");
}
status = ca_pend_io(1000.0);
clock_gettime(CLOCK_REALTIME, ×2);
if (status != ECA_NORMAL)
{
printf("%s: Get Timed Out\n", argv[1]);
exit(-1);
}
tm2 = 1.0*times2.tv_sec + times2.tv_nsec*1.0e-9;
tm1 = 1.0*times1.tv_sec + times1.tv_nsec*1.0e-9;
rate = 1.0*MAXLOOP/(tm2-tm1);
printf("tm2: %f\n", tm2);
printf("tm1: %f\n", tm1);
printf("tm2-tm1: %f rate: %f \n", tm2-tm1, rate);
ca_task_exit();
return(0);
}
- Navigate by Date:
- Prev:
Device Support for HP1428A & TVS654A Coleman, Thomas A.
- Next:
Re: Matlab Timo Korhonen
- Index:
1994
1995
1996
1997
1998
1999
<2000>
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Device Support for HP1428A & TVS654A Kate Feng
- Next:
CA throughputs Lifang Zheng
- Index:
1994
1995
1996
1997
1998
1999
<2000>
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|