Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost MSM : Virtual Memory Exhausted: cannot allocate memory
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2013-10-06 15:14:51


>Hello,
>

>I am using boost Meta - state machine. I have 19 state which is compiling ok. but whn i incease the number of state transition in Transition table(using internal_transition_table) i get >this error: "Virtual Memory Exhausted: cannot allocate memory"
>

>Has anyone has face the same problem??
>

>Regards
>Rahul

Hi,
It's hard to answer without seeing code. How large is the compiler process? At the limit of what a 32-bit system can allocate? And which compiler are you using?

> I have tried using transition_table inside a state and its is not possible to have transition. But i am able to compile. If i use internal_transition_table then the maximum number of rows > is limited to around 120.

Well, internal_transition_table is more expensive than a simple transition_table because MSM is forced to create rows in the transition table for all rows in the internal_ version.
120 is pretty large, it's enough to kill many compilers, first to go would be VC and older version of gcc.
If I get the code I can try it on onther compilers or on a 64-bit system. MSM is still quite hard on the compilers and with 120 transitions, I bet you're at the limit of what the system can allocate.
Regards,
Christophe



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net