I think introducing such manual memory collection would be much harder than
standardizing some kind of foreign function interface and just connecting
JavaScript to language that is better at dealing with specific task (eg.
WebAssembly).

2016-03-14 14:35 GMT+01:00 Brian Barnes <gga...@charter.net>:

> The more we discuss this, the more I think this problem isn't solvable
> without something radical that makes Javascript more C like.  Which, I
> think, is probably some of the reason for asm.js.
>
> The problem: People want to create realtime games, VR, animations, without
> stutter.  You can get away with this by pre-allocating everything into
> global (I do a lot of that and get solid, predictable frame rates:
> www.klinksoftware.com/ws) GC engines just aren't the place for that.
>
> A real multi-part solution would be:
>
> 1. Introduce types.  Make them pass by value, and "set by value".  This
> allows local variables to be on the stack, and allows for faster to
> compilation steps as you don't have to run functions to analyze the types.
>
> foo(x)
> {
> int y; // local, on stack
>
> foo2(y); // the y inside of foo2 is a local in foo2, passed by value
> globalY=y; // this is also copying the value, y is still local
>
> y=0.0; // probably an error, should be forced to convert
> y=Math.trunc(0.0); // not an error
>
> return(y); // also a copying of the value
> // y is popped from the stack
> }
>
> This isn't new, it's how C obviously does it.
>
> 2. Introduce a new mode that changes the behavior of new in scripts to
> require a free, say "use free"; .  Heaps are compacted (if required) on
> new, so realtime can avoid that by pre-allocating.
>
> {
> let x=new myClass(y);
> free(x);
> }
>
> This would probably require a separate heap, away from the GC heap.
>
> I'm just thinking that anytime spent on a solution that tries to put some
> kind of control over GC is destined to meet resistance because of the
> variety of GC schemes and worse, never actually solve the problem, just
> move it around.
>
> Yes, this is something really radical that would be years in showing up in
> any browser.  I think for now I'll just have to stick to a lot of
> pre-allocated globals.
>
> [>] Brian
>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to