Jump to content











Photo
- - - - -

Imdisk - memory allocation


  • Please log in to reply
5 replies to this topic

#1 jumpingjackflash5

jumpingjackflash5
  • Members
  • 4 posts
  •  
    Czech_ Republic

Posted 28 January 2019 - 06:36 AM

Hello,

 

I discovered IMDisk and it is really great piece of software. I especially appreciate the possibility to create ramdrive as needed by the command line.

I know this was discussed before here, but I need to clarify the question of memory allocation for Ramdisks.

I understand that there are two options - standard using virtual memory (which is simply general memory allocation managed by Windows) and special using awealloc driver that allocates physical memory.

 

I have 64 bit Windows 10 and 16 GB RAM. I will use RAMdrive for working files, not for swapfile or other system files. Typical size of the drive will be 2-3 GB RAM. 

 

I generally like the idea of allocating memory from the virtual Windows pool, because Windows memory management is generally working well (better that many "optimizers"). I need smoothly running system, since some apps that will be working with files on ramdisk need good performance overal and also I like to have fast, responsive system. But I have read in some discussions here before that it can under some circumstances make problems with Windows memory allocations, because "a large chunk of memory is allocated". But those threads were mainly about older computers, 32 bit, WinXP/7.

 

So I would like to ask

 

1. Are the described limits with IMDisk virtual memory Ramdrives specific for older computers, with 32 bit Windows (which has limited address space)?

2. Can I use in my configuration ramdisk with described parameters without performance degradation/memory allocation errors?

3. Will IMDisk well handle 2-3 GB ramdrive created in virtual memory on Win64 without measurable/perceivable performance degradation of the whole system?

 

Thank you in advance

 

Jan


Edited by jumpingjackflash5, 28 January 2019 - 07:03 AM.


#2 jumpingjackflash5

jumpingjackflash5
  • Members
  • 4 posts
  •  
    Czech_ Republic

Posted 28 January 2019 - 09:25 AM

And one more addendum - despite what I wrote about the virtual memory ramdisk which I tend to prefer, would it be for some reasons to use physical memory ramdisk in my čase?

#3 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1411 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 28 January 2019 - 02:16 PM

The problem with large virtual memory blocks is that on 32 bit architecture is that it requires a large contiguous part of kernel virtual address space. This frequently leads to strange problems with many kinds of applications and drivers because they will sooner or later fail to allocate memory even though there is "theoretically" enough memory free for the allocation.

 

In my experience, this is almost never a problem on 64 architecture. Which is not surprising really, the virtual address space on 64 bit architecture is large enough to hold extremely large allocations as one single address range.

 

And your last question, no, I don't think there would be any practical benefits from using physical memory instead. If your performance requirements are "extreme" it could be worth trying of course but otherwise I don't think you will notice any practical difference.



#4 jumpingjackflash5

jumpingjackflash5
  • Members
  • 4 posts
  •  
    Czech_ Republic

Posted 28 January 2019 - 02:28 PM

Thank you very much for quick and informed reply. No my perfomance requirements for ramdisk Are not extreme I just need it to be reasonably fast for working with (mostly audio) files. And have smoothly running OS too. As you wrote, on 64bit Windows that should be OK. Have a nice day!
  • Olof Lagerkvist likes this

#5 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1411 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 28 January 2019 - 06:24 PM

Dobrý! Čau!



#6 jumpingjackflash5

jumpingjackflash5
  • Members
  • 4 posts
  •  
    Czech_ Republic

Posted 28 January 2019 - 06:26 PM

Thank you - děkuji ... I didn't know you speak Czech ...

Regarding memory allocation, I assume that Windows always (or if it can) allocates (or tries to allocate) memory in continuous blocks - that's why it needs to have not fragmented space as big as the program requirements are.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users