I have an office; a room with a personal assistant and a cabinet storing 5000 books and a work desk with space for 20 books. Picture this configuration as
- Office = computer
- Me = processor (CPU)
- Assistant = operating system (OS)
- Desk = RAM
- Cabinet = Hard disk
At any one time 20 books, at most, can be taken out of the cabinet by my assistant and placed on my desk for work. Due to my secretary's own work, he may place a book or two of his own on my desk (let's just say we are poor and cannot afford another desk).
If I want to work on other books, there is no more space, and my assistant has to determine which current book(s) on the desk I am least likely to use at the moment, and will slot that book back into the cabinet to make way for the other books I want. The assistant has to walk to and fro the desk and cabinet every time I wish to work on a book not within my reach.
For a system with insufficient RAM, that is what the OS does for processes that does not appear to be very active - take their memory contents and write them to disk in a virtual memory store, freeing up RAM for other processes that need it. Just like there is distance between desk and cabinet, there is "distance" between processor, RAM, and disk. The disk is incredibly far, and slow, just as you experience with your laptop.
In the next office, my colleague has a desk spacious enough for 80 books. Wouldn't it be nice if the he could "share" some of his desk to store my books? So that I could virtually have 100 books?
Well, first of all, the assistants in each office inevitably need to place some of their own books so they can perform their own work (not negotiable). All OS in a system need to use some RAM to do their work otherwise you'd have no OS to begin with. So I don't really get the full 20 book allocation, nor my colleague with a full 80 book allocation. And my colleague has his own work to do which further depletes the the available space.
Furthermore, the assistants are not trained to move books between offices (take it that their competency levels have a limit). Existing Windows architecture does not have provision to directly use the RAM of another remote computer.
Now, imagine if the assistants were indeed trained to properly move books between offices and clearly remember the ownership of books, walking between offices is very likely going to be an even slower procedure because walking out of one office to another is of a greater distance. Not only that, when the assistant fetches the books from the other office, he would still have to clear space on your own desk, by shuffling unwanted books back into the cabinet. Why make him walk so much?
Exiting one computer to store/retrieve stuff in another computer via the network, at least for your use case, is not achievable because the app nor the OS does not know how to accomplish it. And it wouldn't be very efficient either.
If you want to continue working with the laptop, install more RAM (bigger desk), or install a solid-state disk (cabinet with organisation features that make locating books faster).
Note that in some configurations it can actually be faster to store and retrieve data from remote computers - there are clustering software technologies that do just that - then to access slow spinning disks, but those are still not catering to your scenario.
Consider the time scales of data access between hardware resources.
2No, ram is not transferable. – Ctrl-alt-dlt – 2015-05-22T07:59:53.053
15Sure you could do that. But the shared RAM would only be as fast as your network speed. In other words, this is possible (well, theoretically anyway), but not practical. – Ajedi32 – 2015-05-22T16:11:56.200
4
It's not reasonable to ask you to switch operating systems, but do know that Linux has virtual memory compression meaning that you can use more RAM than you physically have by compressing certain segments of it with LZO.
– Naftuli Kay – 2015-05-22T18:57:15.7305If you were using Linux, you could rig up something using a ramdisk, a network block device, and a swapfile. I don't believe Windows has this sort of capability. – Mark – 2015-05-22T20:07:01.857
4
You're asking the wrong question. The question you should ask is, how do you leverage the more powerful machine to perform builds? And one possible answer is the Gradle SSH plugin.
– Michael Hampton – 2015-05-23T03:23:15.970