More radical ideas about gc and reference counting

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Wed May 7 00:14:35 PDT 2014


On Tuesday, 6 May 2014 at 22:07:15 UTC, Xavier Bigand wrote:
> Le 06/05/2014 13:39, Paulo Pinto a écrit :
>> On Tuesday, 6 May 2014 at 10:58:14 UTC, Manu via Digitalmars-d 
>> wrote:
>>> On 6 May 2014 16:33, Jacob Carlborg via Digitalmars-d
>>> <digitalmars-d at puremagic.com> wrote:
>>>> On 06/05/14 08:07, HaraldZealot wrote:
>>>>
>>>>> I notice that I view only part of problem, can anybody link 
>>>>> or describe
>>>>> me completely state and problems of current garbage 
>>>>> collection and
>>>>> other
>>>>> resource management? It help me in finding of existence 
>>>>> solution (at
>>>>> least theoretical).
>>>>
>>>>
>>>> The major issue with the garbage collector is that it's not
>>>> guaranteed to
>>>> run a collection. When a collection is run the GC will call 
>>>> the
>>>> destructors
>>>> for the objects it collects. If there's no guarantee a 
>>>> collection is run
>>>> there can be no guarantee that destructors are called. A 
>>>> collection is
>>>> usually run when allocating new memory and there's not 
>>>> enough memory
>>>> available.
>>>
>>> I think it's also an important consideration that GC is 
>>> incompatible
>>> with low-memory and real-time environments.
>>>
>>> ...
>>
>> I guess outside the gaming world, embedded and real-time seem 
>> to be
>> getting lots of Java and .NET love:
>>
>> https://www.aicas.com/cms/
>
> Is that VM full compatible with Java specifications and 
> standard frameworks?


Yes. That is the point of having a Java VM certification process.

It still baffles me that many aren't aware Sun/Oracle JVM is 
*only* the reference implementation.

>>
>> http://www.is2t.com/products/
>>
>> http://www.mountaineer.org/netmf-for-stm32/
>>
>> Just a small sample of the partners providing the said support.
>>
>>
>> --
>> Paulo
>
>
> Android works well, I love my nexus, it proves to me that it's 
> possible to create really smooth applications based completely 
> on Java (not 100% of that) but if we compare the Nexus 5 to 
> iPhone 4 :
> Memory : 2 GB RAM vs 512 MB RAM
> CPU : Quad-core 2.3 GHz Krait 400 vs 1 GHz Cortex-A8
> Battery : Li-Po 2300 mAh battery vs Li-Po 1420 mAh battery
>
> And compared to an iPhone 5s
> Memory : 2 GB RAM vs 1 GB RAM
> CPU : Quad-core 2.3 GHz Krait 400 vs Dual-core 1.3 GHz Cyclone
> Battery : Li-Po 2300 mAh battery vs Li-Po 1560 mAh battery
>
> It's maybe not really significant but the majority of Android 
> devices that have acceptable performances have a lot of memory, 
> a quad cores CPU and an heavy battery.
>
> So that cool Java can run smoothly but at which price? I think 
> the margin of Apple produce is unbelievable.

MicroEJ VMs can run in ARM Cortex-M systems. Do you know what 
that means?

A VM taking 28 Kbytes of flash, less than 1.5 Kbytes RAM with a 
boot time of just 2 ms, with a 120 MHz CPU.

Android Dalvik VM sucks. It has not been improved since Android 
2.3, other than additional tweaks on 4.3, and Google only did 
improve it to get it to a good enough state.

Hopefully ART will fix this.

--
Paulo


More information about the Digitalmars-d mailing list