Thursday, March 19, 2015

ADEN Performance Test


This article provides performance test results for ADEN API (For more information about ADEN project please refer to article1, article2 ). The tests were run on a home wireless network with a TP-LINK  300Mbps wireless router, between two K43SV ASUS 2.30 GHz core i5 laptops, transferring a 190M file using a variety of blocksize and a constant datagram payload of 1472 bytes.
The test were run on ADEN version 1.0.0.4, Java version on both computers is JDK 1.6 update 20. Operating system is Windows 7 Home Premium on both computers.


              ^
              |
          800 +
      Seconds |     x                    
              |
          700 +
              |   
              |                          
          600 +                           blocksize | time (s)
              |                          ----------   -------
              |                               1         794
          500 +                               2         492
              |           x                   4         389
              |                               8         268
          400 +                              16         168
              |                 x            32          80
              |                              64          72
          300 +    
              |                       x         
              |                                       
          200 +                                 
              |                             x
              |
          100 +                                                  
              |                                   x     x                        
              |
            0 +-//--+-----+-----+-----+-----+-----+-----+-->
                    1     2     4     8    16    32    64
             
              blocksize (in UDP datagrams of 1472 Bytes payload)



As the chart shows, setting blocksize larger than one decreases the transfer time, which proves the blocking concept of ADEN. Note that the transfer time does not decrease much when blocksize is increased from 32 to 64. Therefore, 32 can be considered an appropriate blocksize value for ADEN on the given network. You may have to perform similar tests in order to determine an appropriate blocksize for your LAN. However, such tests are only necessary when ADEN is intended to be used for bulk transfer on a LAN. For applications where messages are small (i.e. a message is only a few UDP packets) , blocksize can safely be the size of the largest application message.

The same transfer were performed using TCP sockets (java.net.Socket/ java.net.ServerSocket). Bytes were written in chunks of 92KB - which is the same memory space required for a blocksize of 64. TCP's send and receive buffer sizes were set to 16 times the chunk size. The transfer took 160 seconds. Note that with appropriate blocksize, ADEN was 100% faster than TCP sockets.