[Development] What kind of airplane we want to build?
annulen at yandex.ru
Fri Jan 22 11:08:14 CET 2016
22.01.2016, 12:50, "Marc Mutz" <marc.mutz at kdab.com>:
> On Friday 22 January 2016 10:38:28 Welbourne Edward wrote:
>> > AFAIK C++11/14 compilers have zero-cost exception, so, is there any
>> > reason why not start using them in Qt 6.0 ?
>> Any "zero cost" claim is with respect to some assumed base-point. ISTR
>> exceptions require RTTI (run-time type info, as used by dynamic_cast<>),
>> so I guess this "zero cost" claim takes for granted the cost of RTTI -
>> which is surely non-trivial. Qt has its own meta-info so (IIUC) can be
>> built without RTTI, so building with would be a non-trivial cost as a
>> pre-requisite of exceptions.
> It's not just RTTI. It's also exception tables and cleanup code.
And this cleanup code more often than not interferes with compiler optimizations, so -fno-exceptions tends to work faster.
> So no, exceptions don't have zero cost. But they may have zero _runtime_ cost
> when not thrown, as MS claims for the Windows ABI on AMD64.
> A fair comparision would, however, not compare -fexceptions vs -fno-
> exceptions, but take a subsystem, and replace all manual error handling with
> exceptions, then compare performance and code size between the subsystem using
> exceptions and the version with manual error handling (as complete as
> possible, of course) and -fno-exceptions.
> I'm not sure about what outcome to expect, and I don't remember any numbers
> posted by anyone else, either.
> Marc Mutz <marc.mutz at kdab.com> | Senior Software Engineer
> KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
> Tel: +49-30-521325470
> KDAB - The Qt Experts
> Development mailing list
> Development at qt-project.org
More information about the Development