If the client runs on the local host (P4 @ 2.4 GHz) which is connected to the VME crate, we observe an IO speed of 2.6 kHz (10000 read cycles in 3.8s). If the client runs on a remote host (P4 @ 2.8 GHz), the speed is reduced to 1.8 kHz.
Here is the code.
#include <tango.h>
using namespace Tango;
main(unsigned int argc, char **argv)
{
unsigned long temp;
int i;
DeviceProxy *device = new DeviceProxy( "//has107k:10000/bw4/exp/t1");
for( i = 0; i < 10000; i++)
{
DeviceData devdata = device->command_inout( "Check");
}
}
And the make file.
CC = g++
TANGO_HOME = /usr/local
INCLUDE_DIRS = -I $(TANGO_HOME)/include -I .
LIB_DIRS = -L $(TANGO_HOME)/lib
CXXFLAGS = -D_REENTRANT $(INCLUDE_DIRS)
LFLAGS = $(LIB_DIRS) -ltango \
-llog4tango \
-lomniORB4 \
-lomniDynamic4 \
-lCOS4 \
-lomnithread \
-lpthread
.SUFFIXES: .o .cpp
.cpp.o:
$(CC) $(CXXFLAGS) -c $<
all: DGG2Test DGG2Speed
DGG2Test: DGG2Test.o
$(CC) DGG2Test.o -o DGG2Test $(LFLAGS)
DGG2Speed: DGG2Speed.o
$(CC) DGG2Speed.o -o DGG2Speed $(LFLAGS)
clean:
rm -f *.o core