YARP Expected Performance

From Wiki for iCub and Friends
Jump to: navigation, search

What kind of performance can you expect from YARP?

Network performance

There should be little overhead from YARP in your capacity to send data on the network. To work out what you can expect, see the sections on "Checking TCP/UDP/MCAST communication" in the YARP documentation:

This uses a tool called iperf to measure the basic performance of your network. This tool is separate from YARP, so if you feel that YARP is causing problems it is a good independent test.


Suppose you have two computers connected by a 10MB/s hub, with one computer connected to two cameras, and you want to view images (say, 320x240 color) from these cameras on the the other computer. The basic YARP setup is something analogous to:

[machine1] yarpdev --device test_grabber --name /grabber1 --width 320 --height 240
[machine1] yarpdev --device test_grabber --name /grabber2 --width 320 --height 240
[machine2] yarpview --name /viewer1
[machine2] yarpview --name /viewer2
[either] yarp connect /grabber1 /viewer1
[either] yarp connect /grabber2 /viewer2 

Suppose testing TCP with iperf reports something like 8.8 Mbits/s, and testing UDP with iperf reports 9.57 Mbits/s -- so the network looks basically as we expect.

What framerate for the images should we expect? Let's do a very approximate calculation. 8 Mbits/s is 1 megabyte per second. With 320*240 color images, that's roughly 320*240*3 bytes per image = 0.23 megabytes, so roughly 4 images per second, or two pairs-of-images per second.

This is a very low framerate. If we want higher, we need to either reduce the image sizes, or use a faster hub (e.g. 100MB/s)