[erlang-questions] Maximising memory compactness

Tuncer Ayaz <>
Fri Apr 4 20:09:58 CEST 2014


On Fri, Apr 4, 2014 at 5:26 PM, Andreas Schumacher wrote:
> Honestly, we did not measure the number of users, but we made a
> rough guess based on the questions, comments, and/or bug reports we
> got for the half-word emulator.

I'm not arguing for or against halfword-emu, as I'm not the designated
maintainer, but it just works and most likely does for everyone else
who has it enabled. I never had a bug caused by it, and on some
machines it's the reason I can use Dialyzer with an amd64 beam.smp.

If my professional experience with users of code I was responsible for
is any indication, then it's very safe to assume that users only
report bugs. I've learned that users won't even report back if a
hotfix works. Hence, you can't use non-existence of bug reports or
comments as an indication of how widely/successfully something is used.
Some code has vocal users (gamers), most doesn't.


As you didn't answer the x32 ABI question, I take that to mean there's
no plan for that. Correct?

> -----Original Message-----
> From: Tuncer Ayaz [mailto:]
> Sent: den 4 april 2014 14:25
> To: Andreas Schumacher
> Cc: ; Olivier BOUDEVILLE
> Subject: Re: [erlang-questions] Fwd: FW: Maximising memory compactness
>
> On Fri, Apr 4, 2014 at 1:33 PM, Andreas Schumacher wrote:
>> As a matter of fact, the half-word emulator will be deprecated in
>> OTP 17.0, which will be released next week. The reason for that is
>> that there have been very few (if any) users; and thus, the
>> maintenance costs outweigh its value.
>
> FWIW, I use it. But more importantly, how did you measure the number
> of users? For comparison, JVM's compressed oops has been default
> enabled for a long time, but to be precise it's not _exactly_ the
> same thing.
>
> http://docs.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html
> "Compressed oops is supported and enabled by default in Java SE 6u23
> and later. In Java SE 7, use of compressed oops is the default for
> 64-bit JVM processes when -Xmx isn't specified and for values of
> -Xmx less than 32 gigabytes."
>
> https://wikis.oracle.com/display/HotSpotInternals/CompressedOops
>
> That said, what about implementing x32 ABI support as an
> alternative? As far as I can tell this would have to be explicitly
> implemented in HiPE too.
>
>> -----Original Message-----
>> From: 
>> [mailto:] On Behalf Of Kostis
>> Sagonas
>> Sent: den 4 april 2014 11:39
>> To: Erlang
>> Subject: Re: [erlang-questions] Maximising memory compactness
>>
>> On 04/04/2014 10:33 AM, Olivier BOUDEVILLE wrote:
>>> Let's suppose one would like to run a large, distributed (Erlang)
>>> application, with many processes, and that ends up, in some cases,
>>> being RAM-bound.
>>  > ...
>>> The half-word emulator would seem the simplest/most elegant solution
>>> to do so ....
>>  >
>>> So, my question: would relying on a set of 32-bit VMs per host,
>>> instead of a single 64-bit VM, look like the best option here?
>>
>> My opinion is (and has always been) that the half-word emulator
>> seems cute on the surface but deep down is a bad idea (esp. for a
>> language with automatic memory management like Erlang, or if your
>> application has any plans of growing someday).
>>
>> So I would really advice against it. In fact, IMO it's better to
>> try to forget about its existence for anything other than for small
>> embedded devices or in machines that do not have more than 3GB of
>> memory.
>>
>> Unfortunately, I am very busy to elaborate more on this right now.
>> But even if I had more time, I would probably try to find better
>> things to do than think/talk about the half-word emulator. Leaning
>> back and relax until you forget about it (or simply waiting for the
>> day that it is taken out of the distribution) is preferable IMO.



More information about the erlang-questions mailing list