Read this to get a handle on what Microsoft has announced:
http://www.tenforums.com/windows-10-news/17993-windows-10-memory-compression.html
Now, being a system programmer type myself, I understand how this is implemented. System maintains two memory lists. When a page hasn't been used for awhile, it gets compressed and moved off the active list onto the inactive list and is marked swapped out. If the program needs it, a page fault occurs which causes the swapper to check the inactive list, uncompress the page, and give it to the program. If the page has been moved off the inactive list, then it has been swapped to disk so swapper reads it from disk, uncompresses it, and then gives it to the program. The only big difficulty is the compression algorithm. Microsoft claims that their algorithm is fast and compresses on average 40%. This means that on average, 5 pages can fit into 2, depending on the content of the data.
How useful would something like this be for FreeBSD and would we be able to implement it (given legal considerations)?
http://www.tenforums.com/windows-10-news/17993-windows-10-memory-compression.html
Now, being a system programmer type myself, I understand how this is implemented. System maintains two memory lists. When a page hasn't been used for awhile, it gets compressed and moved off the active list onto the inactive list and is marked swapped out. If the program needs it, a page fault occurs which causes the swapper to check the inactive list, uncompress the page, and give it to the program. If the page has been moved off the inactive list, then it has been swapped to disk so swapper reads it from disk, uncompresses it, and then gives it to the program. The only big difficulty is the compression algorithm. Microsoft claims that their algorithm is fast and compresses on average 40%. This means that on average, 5 pages can fit into 2, depending on the content of the data.
How useful would something like this be for FreeBSD and would we be able to implement it (given legal considerations)?