Results 1 to 17 of 17

Thread: replacing signals and slots with callback functions

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    May 2010
    Location
    Bangalore, India.
    Posts
    28
    Thanks
    5
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Re: replacing signals and slots with callback functions

    thanks everybody for replying, can u suggest/give some profiling tool and how to use them
    Last edited by meena; 21st August 2010 at 09:11.

  2. #2
    Join Date
    Sep 2009
    Location
    UK
    Posts
    2,447
    Thanks
    6
    Thanked 348 Times in 333 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: replacing signals and slots with callback functions

    That depends on your processor, some only work on Intel, some only on AMD, and some on both.

    Intel used to provide a free one, but I think it's now commercial, called VTune.
    AMD provide CodeAnalyst, which I think is still free.

    then there's lot of third party ones which cost varying amounts.

    If your happy with CLI, Visual studio comes with a free one, as does GCC.

  3. #3
    Join Date
    May 2010
    Location
    Bangalore, India.
    Posts
    28
    Thanks
    5
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Re: replacing signals and slots with callback functions

    I am working on Linux, (32 bit fedora), My processor is AMD, I need to get the profiling data for qt project which i will be using for ARM 9 (I have arm cross compiler/arm tool chain , 32 bit), anything specific for me?

  4. #4
    Join Date
    Jan 2006
    Location
    Belgium
    Posts
    1,938
    Thanked 268 Times in 268 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows
    Wiki edits
    20

    Default Re: replacing signals and slots with callback functions

    Try valgrind or oprofile etc.
    If you're really adventurous, systemtap.

    These tools all come with a high learning curve though.

  5. #5
    Join Date
    Dec 2007
    Posts
    27
    Thanks
    1
    Thanked 4 Times in 3 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: replacing signals and slots with callback functions

    The Qt documentation says the following to the run time difference between callbacks and signal/slots:

    "Compared to callbacks, signals and slots are slightly slower because of the increased flexibility they provide, although the difference for real applications is insignificant. In general, emitting a signal that is connected to some slots, is approximately ten times slower than calling the receivers directly, with non-virtual function calls. This is the overhead required to locate the connection object, to safely iterate over all connections (i.e. checking that subsequent receivers have not been destroyed during the emission), and to marshall any parameters in a generic fashion. While ten non-virtual function calls may sound like a lot, it's much less overhead than any new or delete operation, for example. As soon as you perform a string, vector or list operation that behind the scene requires new or delete, the signals and slots overhead is only responsible for a very small proportion of the complete function call costs.

    The same is true whenever you do a system call in a slot; or indirectly call more than ten functions. On an i586-500, you can emit around 2,000,000 signals per second connected to one receiver, or around 1,200,000 per second connected to two receivers. The simplicity and flexibility of the signals and slots mechanism is well worth the overhead, which your users won't even notice."

    http://doc.qt.nokia.com/4.6/signalsandslots.html

  6. #6
    Join Date
    Sep 2009
    Location
    UK
    Posts
    2,447
    Thanks
    6
    Thanked 348 Times in 333 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: replacing signals and slots with callback functions

    Quote Originally Posted by meena View Post
    I am working on Linux, (32 bit fedora), My processor is AMD, I need to get the profiling data for qt project which i will be using for ARM 9 (I have arm cross compiler/arm tool chain , 32 bit), anything specific for me?
    gprof - http://www.cs.utah.edu/dept/old/texi...prof.html#SEC2

  7. #7
    Join Date
    May 2010
    Location
    Bangalore, India.
    Posts
    28
    Thanks
    5
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Re: replacing signals and slots with callback functions

    Thanks all of you, i will try to do profiling.

  8. #8
    Join Date
    May 2010
    Location
    Bangalore, India.
    Posts
    28
    Thanks
    5
    Qt products
    Qt4
    Platforms
    Unix/X11

    Default Re: replacing signals and slots with callback functions

    gprof is working fine with qt projects, but the project where there are external libraries (for sensors which are connected to the board) included in the project there gmon.out is not getting created (Those libraries are compatible for arm, and i have arm tool chain, have arm-linux-gprof installed), in the project file i have included the lines
    CONFIG += DEBUG
    QMAKE_CXXFLAGS_DEBUG += -pg
    QMAKE_LFLAGS_DEBUG += -pg
    why gmon.out is not getting created..? are there anything extra i need to do?

Similar Threads

  1. Cannot call OpenCV 2.0 functions inside Qt slots
    By Asfer in forum Qt Programming
    Replies: 2
    Last Post: 19th February 2010, 11:48
  2. Regards CallBack Functions
    By Tavit in forum Qt Programming
    Replies: 1
    Last Post: 19th September 2009, 16:16
  3. Signals and Slots
    By 83.manish in forum Qt Programming
    Replies: 3
    Last Post: 30th June 2008, 10:31
  4. regarding signals/slots
    By jjbabu in forum Qt Programming
    Replies: 2
    Last Post: 4th October 2007, 09:32
  5. emiting signals from const member functions !?
    By sunil.thaha in forum Qt Programming
    Replies: 2
    Last Post: 25th March 2006, 11:29

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.