On Thu, Mar 8, 2018 at 5:04 PM, Mike Hommey <m...@glandium.org> wrote:
> On Thu, Mar 08, 2018 at 02:40:52PM -0800, Bobby Holley wrote: > > I've seen a lot of momentum around migrating chrome-only XPIDL interfaces > > to WebIDL. I'm concerned that insufficient attention is being paid to the > > impact on our binary size. > > > > Fundamentally, the WebIDL bindings improve performance and spec > correctness > > at the expense of code size (and build times). This makes sense for > things > > that are web-exposed or performance-sensitive. But since the webidl > > bindings are also more modern and easier to use, I'm concerned that > people > > will use them indiscriminately for all sorts of internal APIs, and our > > binary will bloat by a thousand paper cuts. > > > > A WebIDL method binding can easily cost a kilobyte or more, depending on > > the number and types of the arguments. If we were to convert all of our > > existing xpidl methods, we could approach 10MB in added code size. > > Last time I looked at bindings, I was horrified to see all the various > strings that all look the same except between bindings for field and > class names. I wonder how much of the bindings cost in terms of binary > size is due to that, or other similar inefficiencies. At least there > seems to be a low hanging fruit there. (IIRC, the same was true of ipdl > bindings) > I was just measuring the methods themselves via |nm --print-size|. There might be additional per-method overhead in the data segment for the associated static tables, but the baseline size for the code itself (argument conversion, error handling, etc) is nontrivial. > > Mike > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform