In theory, EH doesn't need full RTTI (dynamic_cast/typeid); just enough for the thrown types. I can also see that gcc/msvc have separate EH/RTTI flags. I don't have any actual measurements on this, but it seems worth remeasuring since it might've improved in the interim.
On Tue, Jan 5, 2016 at 8:57 PM, Robert O'Callahan <rob...@ocallahan.org> wrote: > On Tue, Dec 22, 2015 at 5:11 AM, Luke Wagner <lwag...@mozilla.com> wrote: >> >> I think there was also a performance reason: IIUC, the non-zero-cost >> exception handling strategy is baked into the Win32 ABI >> (https://www.microsoft.com/msj/0197/exception/exception.aspx) and thus >> enabling EH has a runtime cost for frames containing auto objects with >> destructors (which in modern SM is very common). I vaguely remember >> seeing a platform email thread about using EH a while back (>6 years) >> that measured the then-overhead in Gecko to be ~10%; I can't find the >> thread now. I talked to an engineer who worked on EH optimizations in >> MSVC and he said that there have been some 32-bit EH optimizations >> more recently but there is still runtime cost to having auto objects >> with destructors, so probably this is worth measuring again. Assuming >> we're able to move a large percentage of FF users to Win64 builds over >> the next year, then it seems like we'd care about this even less. > > > As I recall, there was a significant performance hit just enabling RTTI, > which is a prerequisite for exception handling. I think it was a space > problem. Mike Hommey would know more. > > Rob > -- > lbir ye,ea yer.tnietoehr rdn rdsme,anea lurpr edna e hnysnenh hhe uresyf > toD > selthor stor edna siewaoeodm or v sstvr esBa kbvted,t > rdsme,aoreseoouoto > o l euetiuruewFa kbn e hnystoivateweh uresyf tulsa rehr rdm or rnea lurpr > .a war hsrer holsa rodvted,t nenh hneireseoouot.tniesiewaoeivatewt sstvr > esn _______________________________________________ dev-tech-js-engine-internals mailing list dev-tech-js-engine-internals@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals