On 3/12/16 10:52 PM, Brian Barnes wrote:
What I'm trying to say is that it may well not, if it just called JS_GC and if
the problem to be solved is pauses on the order of several tens to hundreds of
milliseconds due to memory collection activity…
Time is not my concern. I’m trading time now for time when it’s critical.
I understand that. What I am saying is that if you call JS_GC now, that
doesn't mean that a cycle collection won't happen 30 seconds from now.
To help prevent that, you'd have to run cycle collection now.
In other words, JS_GC would help somewhat in your situation, but not
completely. And maybe tomorrow it would help less than today. Or maybe
more...
OK, but then we run the very real risk of it not actually doing what people
want. Or more precisely browsers implementing it in various different ways as
they attempt to map its not-really-defined semantics onto their actual GC
systems and then people sprinkling it about based on the GC heuristics and
setup in one particular browser they tested with and optimized for, and then
other browsers having to reverse engineer those _and_ that one browser being
locked into never changing how its GC operates.
And then we all lose. :(
That’s modern web development
No, I don't think it is. The way we prevent problems like this from
arising is by actually creating standards, so that browsers know what
behavior they need to have and consumers know what behavior they can
depend on.
my code uses classes, and I had to fake them until FF 45 came out, and then
realized they failed unless I was operating in strict under chrome; Safari
doesn’t have let and nobody has proper implementation of stereo panning in web
audio :)
Yes, but these are transitional problems. I'm talking about it being a
problem when current implementations constrain both each other and
future evolution of themselves because someone comes to depend on
undocumented details of them.
This _also_ happens in web development, but it's something no one likes
to happen....
Not asking for miracles; I’m asking for best practice on an engine.
The problems start when the best practice is different for different
engines and people optimize their code based on only one engine.
-Boris
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss