Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am using windows 32 bit VLC media player in 64 bit pc. It is working fine. but my question is that won't it allocate memory according to 32 bit structure? That means though i have 64 bit PC, i wouldn't get advantage of it. Simply 64 bit might have good memory allocation in register than 32 bit. Sorry for the simple question but, i am new at Computer Organization Architecture.

EDITED : my point : using a 32bit VLC player in my 64bit OS (4GB RAM) will run like a 32bit player running on 32bit system.. so it doesn't make any sense whether you've 64 bit System or 32 bit system , because it's running like a simple 32bit system. Thanks in advance.

PS. i want it in technical terms, but i have to answer in NON TECHNICAL TERMS.(a general user can understand your answer).so try in general meaning at the end of your answer. thanks for help ..

share|improve this question
1  
I’m pretty sure this has been asked at least a few times already. Try the search-box in the upper-right corner. For the record, yes, 32-bit VLC will only be able to allocate up to 4GB of memory because it uses 32-bit pointers—in practice, it’s actually not even that much due to other factors. (Of course I can’t imagine a real-life scenario in which a video-player would even need to allocate that much.) You can also see some other difference besides memory in this question. –  Synetech Aug 24 '13 at 20:09
    
What "advantage of it" are you talking about? Most of the advantages only require a 64-bit OS. –  David Schwartz Aug 24 '13 at 20:17
add comment

2 Answers

By default an 32Bit application can also only use 2GB of memory. Only if the application is compiled with the IMAGE_FILE_LARGE_ADDRESS_AWARE flag the 32Bit application can use 4GB memory.

share|improve this answer
    
> The /LARGEADDRESSAWARE option tells the linker that the application can handle addresses larger than 2 gigabytes. I wonder what that means; unsigned pointers? I don’t see how the program can use >2GB pointers if the OS isn’t using the /3G switch. I guess I just found a yet another project: trying to write such a program. ¬_¬ –  Synetech Aug 24 '13 at 20:51
    
@Synetech "I don’t see how the program can use >2GB pointers if the OS isn’t using the /3G switch." You're forgetting that 32-bit applications can run on 64-bit OSes. (Also, everyone is forgetting about AWE.) –  David Schwartz Aug 24 '13 at 21:31
    
@DavidSchwartz, You're forgetting that 32-bit applications can run on 64-bit OSes. We’re not talking about 64-bit platforms. If a program is meant to be run on 64-bit and is going to be specially compiled for it, then it may as well just be a full 64-bit program, thus rendering the /LARGEADDRESSAWARE flag pointless. Also, everyone is forgetting about AWE. There’s no mention of the requirements for AWE to work, so I assume it’s for 32-bit programs running on 32-bit, non-Server editions of Windows. It kinds of reminds me of segment-offset addressing in DOS. –  Synetech Aug 24 '13 at 22:28
1  
@Synetech "If a program is meant to be run on 64-bit and is going to be specially compiled for it, then it may as well just be a full 64-bit program, thus rendering the /LARGEADDRESSAWARE flag pointless." That makes no sense at all. Whether compiled as 32-bit or 64-bit, a program should still take advantage of whatever platform it happens to run on. And the /LARGEADDRESSAWARE flag helps on 32-bit OSes too. There are plenty of programs that don't provide 64-bit builds (for a variety of reasons) but can still benefit from access to more virtual memory on 64-bit platforms. –  David Schwartz Aug 25 '13 at 0:09
    
And the /LARGEADDRESSAWARE flag helps on 32-bit OSes too. @DavidSchwartz, you’ve got it backwards, the flag is specifically for 32-bit programs. It has no point for a 64-bit program since any (sane) developer who is compiling a program to run on a 64-bit system would just make it 64-bit to begin with. There is little point to compiling a 32-bit version of a program but then adding the flag to support large pointers (save for perhaps a program that must use 32-bit only libraries). –  Synetech Aug 25 '13 at 3:21
show 4 more comments

A 32-bit program running on a 64-bit OS will in general not be able to access more memory. There are several barriers;

Note that there are 64-bit builds of VLC for windows available. They are marked experimental, but I've built and used VLC on other 64-bit platforms without problems.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.