Simen
7/9/2007 12:44:00 AM
On 7/9/07, TongKe Xue <tongke@gmail.com> wrote:
> I can't use Unix processes because we have too many objects. And we don't
> wnat to pay the >= 8KB kernel memory for each process.
>
> This is for simple stuff like:
>
> dog:
> if dist(owner) > 5
> go_in_direction_of(owner)
>
> but we have crap loads of these objects; and we want them to be user
> scriptable (so C/C++ is a NO NO, we need an interpreted language), but we
> don't want people to do crap like:
>
> while(1) {
> get some more memory;
> }
>
> or
>
> calculate_ditits_of_pi(*)
>
> On 7/8/07, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:
> >
> > Travis D Warlick Jr wrote:
> > > TongKe Xue wrote:
> > >> I'm working on a massive simulation project (like worldforge). I need
> > to
> > >> be able to allow users to script objects in the world. I am thinking of
> > >> ussing Ruby as my scripting language of choice. However:
> > >>
> > >> (1) I need to be able to limit the memory usage of the object.
> > >> (2) I need to be able to limit the CPU cycle usage of the object.
> > >
> > > Try using Process#setrlimit. That being said, and aside from the fact
> > > that I love Ruby -- I don't recommend it for this type of "massive"
> > > endeavor. Always try to choose the best language for your application,
> > > not simply "the best language" because there isn't one.
> > >
> > > As for what I would recommend: Not a scripting language. For massive
> > > projects, use a compiled language on the back-end and then you may
> > > integrate it with Ruby on the front-end.
> > >
> > > *************************************
> > > * Travis D Warlick, Jr
> > > * Lead Developer
> > > * Operis Systems, LLC
> > > *************************************
> > >
> > >
> > Yes, nearly all of the open-source MMORPG frameworks/games are
> > implemented in C/C++ and most of them provide some kind of
> > controlled/controllable scripting capability. I did find *one* that is
> > Ruby-based (MUES/FaerieMUD) but I was unable to find any evidence that
> > it is currently active). "daimonin" seemed to be the closest to "baked"
> > but it is masked in Gentoo because of some outstanding security issues,
> > so I didn't experiment with it at all.
> >
> >
>
Erlang, perhaps. It's got the ability to handle lots and lots of
lightweight threads, at least. Perhaps there's a way to limit the heap
of eachs process, since by design processes don't share data (well,
maybe they do under the hood.) I don't know about embedding it into an
application, though.
--
- Simen