The MASM Forum Archive 2004 to 2012

General Forums => The Laboratory => Topic started by: thomas_remkus on June 16, 2005, 05:44:11 PM

Title: using /3GB and not working
Post by: thomas_remkus on June 16, 2005, 05:44:11 PM
I have a Dell PowerEdge 2650 2u server with 3 gigs of RAM. I have installed Windows 2000 Advanced Server and have put the "/3GB" switch for the bootup. The machine is reboot.

I have a test application that attempts to malloc over 2 gig of ram in a single array with no success. I can allocate this space under, but not over, 2 gigs of ram. My application is using /LARGEADDRESSAWARE.

Is there something else I can do to the LINK options or ??? so I can allocate over 2 gigs of ram?

thomas
Title: Re: using /3GB and not working
Post by: thomas_remkus on June 16, 2005, 07:40:36 PM
Well, it seems that I might be able to use all 3 gigs of RAM after all. The problem is that I can only allocate a single array to be the size of 2 gig. If I have three arrays 1 gig a piece then it's all OK. The /3gb is working.

I am also reading about how to use a memory file and then I could use all 4 gig of Virutual Memory space. I'm looking more into this.

thomas
Title: Re: using /3GB and not working
Post by: AeroASM on June 16, 2005, 09:24:15 PM
If you have 3gb of data where is your code?
Title: Re: using /3GB and not working
Post by: GregL on June 16, 2005, 09:44:05 PM
Some good information on the /3GB switch.

  http://blogs.msdn.com/oldnewthing/search.aspx?q=3GB&p=1

Raymond Chen's blog is full of good information on Win32 API and Windows. He is a developer on the Windows team at Microsoft.
Title: Re: using /3GB and not working
Post by: thomas_remkus on June 16, 2005, 09:54:27 PM
I'm maintaining an application that creates an array of possible configurations from the org data. The org data is from SQL server and SQL is not very match or matrix intensive. So, everything is brought into structures and then extrapolated. It takes about 2.2 gig for the largest [thing]. The tree is created, then it's traced for use. Speed is more important than hardware at this point but now it's getting rediculous. So I need to get this one [thing] working and it's just not happy.

Honestly, it's an array of pointers, that's it. The pointers point to other arrays of other pointers. You can sort of think of this like chess if you like. If you place a 100 move game and you want to trace the entire tree to an advantage then this is where you might go. This is every possible move for 100 moves ... every branch. That's so when you want to get to data X it's already calculated the correct move.

This is not a chess simulation, but rather a business application that is at the heart of what's needed. The dll is only 360k.

thomas
Title: Re: using /3GB and not working
Post by: Mark_Larson on June 17, 2005, 12:50:26 AM

  look into hashing, and see if you can hash instead.