ZaltysZ Posted November 12, 2009 Posted November 12, 2009 There are tweaks you can do in your OS to give a 32bit application more space - you can get to 3GB in a 32-bit OS and 4GB in a 64-bit OS, but these are tweaks with significant side effects. Only 32 bit OS needs to be tweaked, 64 bit OS needs no modifications. However, application tweak is required in both cases. It is pretty simple: application executable file is needed to have LARGEADDRESSAWARE flag set. It is even possible to set it without relinking whole executable (of course, only if executable isn't protected by DRM). There is no side effects per se. Problems would arise only if application was programmed with too "smart" memory allocation or with assumption that it never can get more than 2GB. Wir sehen uns in Walhalla.
Panzertard Posted November 12, 2009 Posted November 12, 2009 Only 32 bit OS needs to be tweaked, 64 bit OS needs no modifications. However, application tweak is required in both cases. It is pretty simple: application executable file is needed to have LARGEADDRESSAWARE flag set. It is even possible to set it without relinking whole executable (of course, only if executable isn't protected by DRM). There is no side effects per se. Problems would arise only if application was programmed with too "smart" memory allocation or with assumption that it never can get more than 2GB. You *Can* get 3Gb in a 32bit os - but you need to consider your full configuration; http://forums.eagle.ru/showpost.php?p=710319&postcount=32 Add your video memory into the mix - how much memory can you adress in a 32bit os? 4gb - in total. So if you leave 3Gb for user environment, 1gb for the system and you got 1gb of video Memory - then I would assume you have overbooked your system with 1gb. 3+1+1gb = 5gb = not adressable for windows in 32bit. So the 2gb for userenvironment + 2gb for system makes sense in a 32bit environment. The mind is like a parachute. It only works when it's open | The important thing is not to stop questioning
ZaltysZ Posted November 13, 2009 Posted November 13, 2009 Add your video memory into the mix - how much memory can you adress in a 32bit os? 4gb - in total. ... 3+1+1gb = 5gb = not adressable for windows in 32bit. ... So the 2gb for userenvironment + 2gb for system makes sense in a 32bit environment. Not exactly. With PAE on, you can use more than 4GB (64GB - 36 bit addressing) in 32 bit Windows if the restrictions are not enforced. XP is limited to 4GB minus hardware address space on purpose. Windows Server 2003 isn't, but you need to use compatible drivers or you will have problems. With correct drivers you can happily use 3GB for single application in that OS - hardware won't eat precious address space. In anyway, most problems go away in 64bit environment (as consumer level OS is available), running LARGEADDRESSAWARE 32 bit application in 64 bit Windows will give it max 4GB. I would not mind if DCS got 4GB on my system (then OS will still have another 2GB), and only that bit needs to be set for this improvement, unless DCS does something fancy with memory management. Wir sehen uns in Walhalla.
Feuerfalke Posted November 13, 2009 Posted November 13, 2009 (edited) Panzertard is right. Doesn't matter which version, WinXP, Vista or Win7. You can never use more than 4GB as the available physical system addresses are able to only run close to 3.9GB. PAE only allows you to store kernel-date in high-memory banks and use somewhat more than 4GB of RAM, but with several limitations. Windows will still reserve the same ammount of memory Panzertard described, simply because this high memory is protected by hardware enforced DEP and windows can't really make use of it other than storing some kernel-data in it. So it's just a very theoretical thing and it it's used to protect kernels on servers, it's not for running applications with more RAM. There are already numerous threads about this, with loads of links to hardware-pages. Now, with 64bit, any 32bit program is still limited to use a max of 2GB in general, but you can easily override it, simply by installing more RAM. My 6GB memory + 2GB Graphics memory makes DCS:BS use 3.5GB. But for a 4GB machine, it's still limited to 2GB. With a 64bit executable, DCS can actively require more memory and make use of it more efficiently. Edited November 13, 2009 by Feuerfalke MSI X670E Gaming Plus | AMD Ryzen 7 7800X3D | 64 GB DDR4 | AMD RX 6900 XT | LG 55" @ 4K | Cougar 1000 W | CreativeX G6 | TIR5 | CH HOTAS (with BU0836X-12 Bit) + Crosswind Pedals | Win11 64 HP | StreamDeck XL | 3x TM MFD
ZaltysZ Posted November 13, 2009 Posted November 13, 2009 Now, with 64bit, any 32bit program is still limited to use a max of 2GB in general, but you can easily override it, simply by installing more RAM. More RAM does not do much. It does not matter if you have 4GB or 16GB, all 32 bit application will use max 2GB on 64bit Windows by default. Only 32bit applications with LARGEADDRESSAWARE flag set in their binary image is allowed to use more RAM (up to 4GB). If you see 32 bit process using more than 2GB of RAM, then it has that flag set. Wir sehen uns in Walhalla.
Feuerfalke Posted November 13, 2009 Posted November 13, 2009 More RAM does not do much. It does not matter if you have 4GB or 16GB, all 32 bit application will use max 2GB on 64bit Windows by default. Only 32bit applications with LARGEADDRESSAWARE flag set in their binary image is allowed to use more RAM (up to 4GB). If you see 32 bit process using more than 2GB of RAM, then it has that flag set. If you say so... :music_whistling: MSI X670E Gaming Plus | AMD Ryzen 7 7800X3D | 64 GB DDR4 | AMD RX 6900 XT | LG 55" @ 4K | Cougar 1000 W | CreativeX G6 | TIR5 | CH HOTAS (with BU0836X-12 Bit) + Crosswind Pedals | Win11 64 HP | StreamDeck XL | 3x TM MFD
ZaltysZ Posted November 13, 2009 Posted November 13, 2009 (edited) Dump of file DCS.exe PE signature found File Type: EXECUTABLE IMAGE FILE HEADER VALUES 14C machine (x86) B number of sections 4A818626 time date stamp Tue Aug 11 17:54:30 2009 0 file pointer to symbol table 0 number of symbols E0 size of optional header 12F characteristics Relocations stripped Executable Line numbers stripped Symbols stripped [color=Red] Application can handle large (>2GB) addresses[/color] 32 bit word machineLARGEADDRESSAWARE bit is set, so DCS has 4GB limit in 64bit OS. Edited November 13, 2009 by ZaltysZ 1 Wir sehen uns in Walhalla.
Feuerfalke Posted November 13, 2009 Posted November 13, 2009 Nice find! :thumbup: MSI X670E Gaming Plus | AMD Ryzen 7 7800X3D | 64 GB DDR4 | AMD RX 6900 XT | LG 55" @ 4K | Cougar 1000 W | CreativeX G6 | TIR5 | CH HOTAS (with BU0836X-12 Bit) + Crosswind Pedals | Win11 64 HP | StreamDeck XL | 3x TM MFD
Distiler Posted November 13, 2009 Author Posted November 13, 2009 I think that's related to the 32-64bit translation layer (named WOW64), capable of adressing 4GB for 32 bit applications in a 64bit environment. AMD Ryzen 1400 // 16 GB DDR4 2933Mhz // Nvidia 1060 6GB // W10 64bit // Microsoft Sidewinder Precision 2
GGTharos Posted November 13, 2009 Posted November 13, 2009 The problem isn't the OS, or the binary, it's microsoft :) Windows XP CAN and DOES see more than 4GB RAM ... -if- you have the Extended Memory code license. Most of the time XP wouldn't come with it (read: if you need it, you buy it) However, 64bit binaries on 64bit architecture is probably a bit more effcient than using 32 bit binaries on the same. [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Feuerfalke Posted November 13, 2009 Posted November 13, 2009 XP32 recognizes all of my memory installed, that is not the problem. Addressing it is, though. AFAIK the only way to use at least mathematically more than 4GB of RAM is by using Intel's technology to address the graphics memory in parallel to the normal RAM, thus at least virtually having more RAM available. MSI X670E Gaming Plus | AMD Ryzen 7 7800X3D | 64 GB DDR4 | AMD RX 6900 XT | LG 55" @ 4K | Cougar 1000 W | CreativeX G6 | TIR5 | CH HOTAS (with BU0836X-12 Bit) + Crosswind Pedals | Win11 64 HP | StreamDeck XL | 3x TM MFD
GGTharos Posted November 13, 2009 Posted November 13, 2009 You -can- address more, you just need the PAE extension which, again, normally not licensed. It is an artificial barrier. In 64 bit systems it's natively able to address more, and there's no barrier (At least, insofar as having as much RAM as you might possibly need). [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Feuerfalke Posted November 13, 2009 Posted November 13, 2009 I know what PAE does, but as posted above, XP is still limited to shortly above 4GB, even if enabled and licensed. And even that is very limited in use and efficiency. If you have another OS, of course, you can use up to 128GB of RAM for a 32bit OS, but that's server-editions. http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx Do you have a link about Extended Memory Code licensing? Searched a bit with google, but only found the PAE, which state the above. :dunno: MSI X670E Gaming Plus | AMD Ryzen 7 7800X3D | 64 GB DDR4 | AMD RX 6900 XT | LG 55" @ 4K | Cougar 1000 W | CreativeX G6 | TIR5 | CH HOTAS (with BU0836X-12 Bit) + Crosswind Pedals | Win11 64 HP | StreamDeck XL | 3x TM MFD
Recommended Posts