Re: Carbon is C++?
Re: Carbon is C++?
- Subject: Re: Carbon is C++?
- From: Jean-Daniel Dupas <email@hidden>
- Date: Mon, 1 Mar 2010 10:23:28 +0100
Le 1 mars 2010 à 05:55, Erik Buck a écrit :
>
> On Feb 28, 2010, at 10:49 PM, David Rowland wrote:
>
>>
>> On Feb 28, 2010, at 7:24 PM, Erik Buck wrote:
>>
>>> I disagree. I have written very low latency device drivers in Objective-C. Why do you think Objective-C has too much "latency" for audio? When properly used, Objective-C programs are no more likely to be preempted than any other kind of program. Message dispatch generally has constant time and is only 2.5 times the cost of a C function call.
>>
>> That just cannot be true. But if you need speed you can write a direct C style subroutine and call, and it will be swift. The dynamic binding of ObC messages often isn't needed.
>
> http://www.mikeash.com/pyblog/performance-comparisons-of-common-operations-leopard-edition.html
> http://www.friday.com/bbum/2009/12/18/objc_msgsend-part-1-the-road-map/
> http://ridiculousfish.com/blog/archives/2005/08/01/objc_msgsend/
> http://www.mulle-kybernetik.com/artikel/Optimization/
>
> See gcc option -fobjc-direct-dispatch
>
This option is a noop on Intel arch.
And it does not prevent the main issue when dealing with objc_msgSend. The dispatch time is not constant.
The runtime may have to use slow dispatch path when the method is not cached (and even have to use malloc to increase cache size).
> Interesting research: http://www.jot.fm/issues/issue_2009_01/article4/
>
>>
>>
>>> There aren't many function calls or messages sent in audio processing anyway. Signal processing routines tend to be long loops. Objective-C _IS_ C which means it is likely usable in any situation where C is usable.
>>>
>>>
>>
>
-- Jean-Daniel
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden