Author: martin fierz
Date: 07:15:13 12/05/03
Go up one level in this thread
On December 05, 2003 at 08:55:49, Steve Coladonato wrote: >On December 05, 2003 at 08:45:56, martin fierz wrote: > >>On December 05, 2003 at 07:37:15, F. Huber wrote: >> >>>Hi, >>> >>>a few days ago i discovered a big problem with my compiled version of >>>Chest (´WinChest.exe´), which occurs since the very first release: >>>(I didn´t realize it earlier, because until now i had only a notebook >>>with 128MB RAM, and now have changed to a desktop P4-2.66 with 512MB) >>> >>>WinChest is requesting its hash memory from Windows by calloc(), but >>>whenever the needed memory is larger than 256MB, this function call >>>is not successful - it gets no more mem from Windows than this value! :-( >>> >>>I´m working here with Windows 98 (SE) and 512MB, but this can´t be the >>>reason, because when compiling the same WinChest sources with the >>>´Borland-C 5´ compiler there´s absolutely no problem with larger >>>hash sizes - even more than the physical 512MB are possible (of course >>>with swapping). >>> >>>This problem only arises with the version compiled with MS-VC++ 6.0, >>>and I have absolutely no idea, what could be the reason for it - >>>I´ve already searched through the help files and looked through all >>>compiler options, but I didn´t find anything, what could explain this >>>strange behaviour, and there also seem to exist no compiler options >>>related to this problem. >>> >>>So my question to all, which are more familiar with MS-VC++ 6.0 than I: >>>Is there any memory limit of 256MB in calloc() or mallcoc() in _priciple_ >>>in this compiler, or is there still any compiler option (that maybe I´ve >>>not discovered yet), or do you eventually know _any_ other way to solve >>>this problem with this compiler? >>> >>>Really hoping to get some solution - >>>with my best regards, >>>Franz. >> >>hi franz, >> >>IIRC there is indeed a memory limit for malloc under visual C. you should use >>the windows memory allocation routines instead (virtualalloc / globalalloc). i >>remember i had to do this when i built the 8pc endgame database for checkers, >>where i had to allocate close to 1GB, there the malloc function didn't work any >>more. >> >>cheers >> martin > >I did some programming in ANSI C, nothing in C++, quite a few years back and am >wondering if the solution mentioned here, virtualalloc / globalalloc, now makes >the code non-portable and specific for the windows platform. > >Thanks. > >Steve hi steve, IIRC you are right, those windows memory management functions are of course non-portable. but i believe there is no way around this if you want to access more than 256 MB at once. i have a book at home where the answer to this question is. i can look it up tonight if no one else has a good answer till then. cheers martin
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.