On 02/13/2013 07:55 PM, Boris Zbarsky wrote:
On 2/13/13 10:16 PM, Boris Zbarsky wrote:
On 2/13/13 9:47 PM, Brian Anderson wrote:
I haven't actually created a DOM-related milestone yet because we
haven't come up with a goal that I'm satisfied with ("create working dom
bindings" is vague). Things we've considered as short-term bindings
goals are canvas and WebGL. Does anybody have suggestions here?

How about deciding on an actual implementation strategy for the DOM?

Note that from this point of view canvas and webgl are uninteresting because they have only one DOM interface involved, so there are no inheritance issues and whatnot.

A basic binding for Node that allows JS to do .firstChild without a virtual function call on arbitrary nodes would be a lot more like what I'm looking for here.

I understand your concern and I agree that validating the architecture is our primary goal. Thank you for raising the subject. It is the first thing mentioned on the roadmap on the wiki, but I neglected to consider it when putting together these milestones.

So as you suggest, maybe we should tie some performance goals to the DOM implementation. I've started by creating a new milestone that includes the `firstChild` test and the issues that block it: https://github.com/mozilla/servo/issues?milestone=3&state=open

The main performance issues that you've expressed concern about and that I can recall are in the following issues:

* FFI stack switching - https://github.com/mozilla/servo/issues/278
* FFI virtual calls - https://github.com/mozilla/servo/issues/278
* DOM representation - https://github.com/mozilla/servo/issues/280
* string representation - https://github.com/mozilla/servo/issues/282
* optimizing layout requests - https://github.com/mozilla/servo/issues/283

3 of those are on the list for the new milestone. The string and layout issues are not. Do you think it is appropriate to make either of those part of the milestones for this year? Are there other critical performance questions I'm forgetting?

I hope this helps ease your mind somewhat, but let me know if otherwise.

For your reference, some of the performance issues you've raised previously are already impacting Rust's design. Most significantly the [FFI] is in the process of being redesigned to support servo's use case. Also, the upcoming [scheduler] redesign should give us more opportunities to experiment with optimizations relevant to servo.

Regards,
Brian

FFI: https://github.com/mozilla/rust/issues/3678
scheduler: https://github.com/mozilla/rust/issues/4419


_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to