dcsimg


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 7 of 7

Thread: Check program elapsed time

  1. #1
    Join Date
    Mar 2009
    Posts
    14

    Check program elapsed time

    Hi,

    I want to run some test that will basically send messages through different technologies (sockets, RMI, CORBA...) to check the performance of mentioned technologies.

    Besides the different implementations my doubt is how to check the time elapsed during those message exchanging. There is an standard way to do it? Maybe time-stamping the date of every message in a terminal?? But I would like to use a more "pro" approach that could give me more complete information.

    By the way, I am struggling with sockets a little bit. If anyone could point me to a nice or more common library in the community that could wrap the raw calls of the sockets communications??

    I develop with C++ over Ubuntu.

    Thank you very much in advance!!!

  2. #2
    Join Date
    Dec 2007
    Posts
    401
    > send messages through different technologies (sockets, RMI, CORBA...)
    > to check the performance of mentioned technologies.

    you are wasting your time. RMI and CORBA are implemented using sockets as the underlying transport. typically, RMI is an order of magnitude slower than sockets and RMI and CORBA have comparable performance.
    see http://java.sun.com/developer/techni...s/ALT/sockets/

    > a nice or more common library in the community that could wrap
    > the raw calls of the sockets communications??

    http://www.linuxhacker.at/socketxx

  3. #3
    Join Date
    Mar 2009
    Posts
    14
    Thanks vijayan for your quick answer.

    Despite your information I would like to run some test if possible with that technologies and have data for a report.

    What it comes to my head if there are out there more techniques to exchange data between process'.? It is possible that in my project I would have to send messages between data that is in different languages so I'd have to use something that provides interoperability between languages, what I don't know if sockets do provide this feature. Could I send a message from C++ process to a Java process throughout a socket or I have to move to RMI or CORBA?

    Best regards.

  4. #4
    Join Date
    Dec 2007
    Posts
    401
    > I'd have to use something that provides interoperability between languages

    use text to represent data. it is the universal format that every programming language understands.
    http://www.faqs.org/docs/artu/ch05s01.html

    as i had mentioned earlier,
    "to use sockets gracefully, start by designing an application protocol for use between them - a set of requests and responses which express what your programs will be communicating in a simple and transparent way".
    i would just add that the protocol should be ideally based on text. perhaps you could consider using a standard format like xml; xml parsers are by now ubiquitous.

    > Could I send a message from C++ process to a Java process?

    yes. every programming language, including java, has (library) support for IPC using sockets.
    http://www.javaworld.com/javaworld/j...2-sockets.html
    Last edited by vijayan; 04-04-2009 at 11:19 AM.

  5. #5
    Join Date
    Dec 2003
    Posts
    3,366
    nearly every language also supports IEEE floating point. Its integers that get messy, sizes and byte order change making it difficult to cross platforms and such.

  6. #6
    Join Date
    Mar 2009
    Posts
    14
    Sorry jonnin but I really don't understand what you mean.... :-(

  7. #7
    Join Date
    Dec 2003
    Posts
    3,366
    integer is a mess -- the size can vary from 1-8 bytes, and the position of the most significant byte can vary (look up "endian" in google). They are very frustrating to use across platforms.

    Floating point values do not suffer from this problem, the number of bytes is 4, 8, and 10 with 10 rarely being used outside of the lowest level numerical algorithms (you use 10 for extra precision in intermediate steps and return 8 byte values where all the significant digits are good because the questionable precision was down in the extra 2 bytes worth).

    So floating point is a reasonable way to transmit numerical data between platforms.

    Text is also great as was said, but keep in mind the drawbacks. Consider a 2 byte value: 65535. As text, you need 5 bytes to represent this 2 bytes worth of data. So more than double the storage coupled with slow pack and unpack algorithms to convert from value to text and back again. Also, is that "65535" in unicode or ascii? Did you remember to handle the changing packet size since ( 12, 11, 1) is a smaller packet than (100, 2136, 1925) whereas in "binary"* formats, they would be the same size?


    * everything is binary, text is a specific binary format that happens to be human readable by non programmers -- this is confusing because some discussions imply text and binary are very different, and gloss over the subset relationship.

Similar Threads

  1. Replies: 1
    Last Post: 08-12-2007, 09:38 PM
  2. Help with Server program
    By sedricbenson@ho in forum C++
    Replies: 2
    Last Post: 11-07-2006, 09:18 AM
  3. Program to run at certain time
    By chupacabra in forum VB Classic
    Replies: 5
    Last Post: 06-29-2006, 11:05 AM
  4. Spell Check Program Glitch (Please Help)
    By nick53182 in forum C++
    Replies: 3
    Last Post: 02-18-2006, 12:12 AM
  5. Replies: 1
    Last Post: 09-08-2005, 11:51 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center