qt-interest@trolltech.com
[Top] [All Lists]

Re: [Qt-interest] Qt signaling smarts...

Subject: Re: [Qt-interest] Qt signaling smarts...
From: Gordon Schumacher
Date: Tue, 24 Nov 2009 12:14:36 -0700
> KC Jones wrote:
>> I have nothing to add re: intra thread signaling, but I will point out
>> that signal/slot calls, especially queued, imply copying all of the
>> passed data.  So if you have a large volume of data you might need to
>> transmit it through some other mechanism (file, socket, etc.) and use
>> the signaling to marshal that resource between threads.
>>
>> But that's not really the advice what you were asking for...
>>     

Will Rutherdale (rutherw) wrote:
> A simpler way to avoid marshalling of big data between threads is to
> subclass from QEvent.  QCoreApplicatin::postEvent() will then put the
> event object into the event queue for the thread to which the object
> belongs.  You handle the incoming event by over-riding QObject::event().
>   

You have two choices, ultimately: copy the data, or protect it with
synchronization objects.  Stuffing it into a file or socket is a variant
of copying it.  Subclassing QEvent could be either one - you either
embed the data into the QEvent (which is a copy), or you include a
reference to it (which requires synchronization).

So the question is, which one is faster?  And I say again: until you've
profiled it, you're shooting in the dark ("programmers are notoriously
bad at predicting how their programs actually perform").
_______________________________________________
Qt-interest mailing list
Qt-interest@xxxxxxxxxxxxx
http://lists.trolltech.com/mailman/listinfo/qt-interest

<Prev in Thread] Current Thread [Next in Thread>