If you're looking for ways to improve performance in get_random_room, and
if you're using olc, try looping through the area vnums first and then
generating a random room from within that area's min and max room vnums.
This way you're only cycling through used vnums instead of billions of
nonused ones.

---
RogueDragon @ A Merging of Fates MUD
telnet://mud.merging.org:5454
icq: 2072355 (inactive atm), yim: roguedragon, aim: roguedragon69
---
Windows - Where do you want to go today?
Linux   - Where do you want to go tomorrow?
FreeBSD - When are they going to catch up?

On Wed, 26 Mar 2003, Hiddukel wrote:

> Thank you both for your replies.  I changed power to a long long and it
> is working perfectly.  I understand that there *could* be a performance
> loss from doing that as you are looping much more times checking invalid
> rooms, however I have run a test using this and generating 100 valid
> random room vnums using get_random_room and I notice no performance hit,
> it gives me 100 results immediatly.  That is not to say that there is
> not a performance hit though as I'm sure there is, but in a mud I can't
> see that this particular hit will affect overall performance enough to
> not use it as it stands.
>
> Once again thank you for the fix and information regarding the operand.
>
> Matt Bradbury
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael
> Barton
> Sent: Wednesday, March 26, 2003 07:39 PM
> To: Tiikuli; Hiddukel
> Cc: 'Rom Mailing List'
> Subject: Re: number_range problem
>
> > I bet that it hangs because the value overflows (becomes negative),
> thus
> > never actually reaching 'to'.
>
> Yeah, slight problem here... I'm not sure there's an easy way to fix it
> without changing power to a "long long", which could impact
> performance..
> You can fake it, of course.
>
>   long vnum;
>   vnum = number_range(0, 21474) * 100000;
>   vnum += number_range(0, 83647);
>   room = get_room_index(vnum);
>
> er.. it's really not a very good algorithm if you've only filled, say,
> 0.01%
> of 2 billion rooms, though.  It could take a while to find a valid room
> in
> all that.
>
> --Palrich.
>
>
> --
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom
>
>
>
> --
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom
>

Reply via email to