new principle of division between structures and classes

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Jan 11 12:31:39 PST 2009


Weed wrote:
> Weed пишет:
> 
>>>> 4. Java and C# also uses objects by reference? But both these of
>>>> language are interpreted. I assume that the interpreter generally with
>>>> identical speed allocates memory in a heap and in a stack, therefore
>>>> authors of these languages and used reference model.
>>>>
>>> Neither of these languages are interpreted, they both are compiled into
>>> native code at runtime.
>> Oh!:) but I suspect such classes scheme somehow correspond with
>> JIT-compilation.
>>
> 
> I guess allocation in Java occurs fast because of usage of the its own
> memory manager.
> 	
> I do not know how it is fair, but:
> http://www.ibm.com/developerworks/java/library/j-jtp09275.html
> 
> "Pop quiz: Which language boasts faster raw allocation performance, the
> Java language, or C/C++? The answer may surprise you -- allocation in
> modern JVMs is far faster than the best performing malloc
> implementations. The common code path for new Object() in HotSpot 1.4.2
> and later is approximately 10 machine instructions (data provided by
> Sun; see Resources), whereas the best performing malloc implementations
> in C require on average between 60 and 100 instructions per call
> (Detlefs, et. al.; see Resources)."

Meh, that should be taken with a grain of salt. An allocator that only 
bumps a pointer will simply eat more memory and be less cache-friendly. 
Many applications aren't that thrilled with the costs of such a model.

Andrei



More information about the Digitalmars-d mailing list