[OT] Why mobile web apps are slow
Brian Rogoff
brogoff at gmail.com
Wed Jul 10 18:44:43 PDT 2013
On Wednesday, 10 July 2013 at 14:01:51 UTC, Paulo Pinto wrote:
> On Wednesday, 10 July 2013 at 13:30:26 UTC, bearophile wrote:
>> thedeemon:
>>
>>> No mature GCed languages behave that bad.
>>
>> I think there is one JavaVM that manages to avoid part of the
>> problem you explain (and maybe it needs special kernel
>> support). I think all other JavaVMs suffer it, more or less.
>>
>> Bye,
>> bearophile
>
> Yes, the C4 garbage collector in the Azul JVM
>
> http://www.azulsystems.com/products/zing/whatisit
>
> http://www.azulsystems.com/products/zing/c4-java-garbage-collector-wp
>
> They used to have special hardware, but now they use standard
> kernels.
>
> RedHat is also planning to have a go at it for the OpenJDK,
>
> http://rkennke.wordpress.com/2013/06/10/shenandoah-a-pauseless-gc-for-openjdk/
>
>
> --
> Paulo
Interesting. There was some discussion of adding a 'pauseless' GC
to Go as well, here
https://groups.google.com/forum/#!topic/golang-dev/GvA0DaCI2BU
and in that discussion Gil Tene, one of the authors of Azul,
opines
"Starting with a precise and generational stop-the-world
implementation that is robust is a must, and a good launching pad
towards a concurrent compacting collector (which is what a
"pauseless" collector must be in server-scale environments). Each
of those qualities (precise, generational) slaps serious
requirements on the execution environment and on the compilers
(whether they are pre-compilers or JIT compilers doesn't matter):
precise collectors require full identification of all references
at code safepoints, and also require a robust safepoint
mechanism. Code safepoints must be frequent (usually devolve to
being at every method entry and loop back edge), and support in
non-compiler-generated code (e.g. library and runtime code
written in C/C++) usually involves some form of reference handle
support around safepoints. Generational collectors require a
write barrier (a ref-store barrier to be precise) with full
coverage for any heap reference store operations (in
compiler-generated code and in all runtime code).
It is my opinion that investing in the above capabilities early
in the process (i.e. start now!) is critical. Environments that
skip this step for too long and try to live with conservative GC
in order to avoid putting in the required work for supporting
precise collectors in the compilers and runtime and libraries
find themselves heavily invested in compiler code that would need
to be completely re-vamped to move forward. ..."
Sounds like that precise GC talk at DConf was quite timely. Let's
hope that prediction about being too heavily invested in
conservative GC dependencies isn't too true!
-- Brian
More information about the Digitalmars-d
mailing list