- #ASTRILL IN CHINA SEPTEMBER 2018 SLOW DRIVER#
- #ASTRILL IN CHINA SEPTEMBER 2018 SLOW PATCH#
- #ASTRILL IN CHINA SEPTEMBER 2018 SLOW FULL#
- #ASTRILL IN CHINA SEPTEMBER 2018 SLOW CODE#
Okay, so we see that the design hinges on the quality of the compression engine. On the other hand, If you had an application that had 10 very hot pages, and 10 additional warm pages, then this could end up a net loss, because there aren’t enough normal pages to hold the application’s very hot pages, so you are constantly compressing and decompressing memory, and that extra time spent on compression could exceed the time saved by avoiding the I/O to the four pages that didn’t fit in RAM before. If you had an application that had 6 very hot pages, and 14 additional warm pages, then this could very well be an improvement, since the very hot pages could stay in normal memory, and the 14 warm pages could take turns occupying the two remaining normal memory pages. Whether this is a net win depends on the memory access patterns of the applications you use. In the above example, we’re assuming a compression ratio of 2x, so we took away 8 fast pages and turned them into 16 medium-speed pages. The hope is that even though you took away a bunch of fast pages, you replaced them with a larger number of medium-speed pages, thereby lowering the number of accesses to slow pages.
![astrill in china september 2018 slow astrill in china september 2018 slow](https://www.vpnmentor.com/wp-content/uploads/2019/05/Astrill-screenshot-13-1024x521.jpg)
This is the view of the system from point of view of applications and the memory manager:įrom the point of view of the rest of the system, it looks like you gained more memory, sort of.Ĭompressed memory isn’t immediately usable like regular memory: When an application requests access to memory that has been compressed, the compressed data is uncompressed into a normal page, and the lowest-ranked normal page becomes a compressed page.¹ This compression and decompression takes time, but since you’re competing against a hard drive, it’ll still be faster than disk I/O.
![astrill in china september 2018 slow astrill in china september 2018 slow](http://img2.zhytuku.meldingcloud.com/images/zhycms_chinaplus/20180115/1a873eb0-9338-4adc-95bf-98bb48575dcc.jpg)
What changed is how the memory is being used.īut I can redraw the diagram so that each page is the same size. The diagram shows the compressed pages smaller than normal than normal pages due to the compression, to emphasize that the total amount of RAM hasn’t changed. I’ve taken half of the RAM in the system and compressed it. The idea is to convert some of those RAM pages into compressed RAM pages: The “On disk” section is far bigger than the “In memory” section, but all the excitement is in the “In memory” section, so I’ve zoomed in on that part. In general, nearly all of the pages in the system are cold, so the above diagram is not to scale. Since the size of the “In memory” section is fixed, that pushes the lowest-ranked in-memory page to disk. When a new page is allocated, it is inserted on the left as the hottest page. The size of the “On disk” section can grow up to the maximum size of your page file. The size of the “In memory” section is the amount of RAM you have. In the above example of a hypothetical system, we have the 16 hottest pages in memory, and the remaining pages on disk. We’ll rank the pages in the system based on how likely they are to be used, with hot pages (most likely to be used) closer to the left and and cold pages (least likely to be used) closer to the right. To explain what’s going on here, let’s draw some pictures. If not, then it read the memory from disk in the usual manner. If so, it decompressed the data and returned it.
![astrill in china september 2018 slow astrill in china september 2018 slow](https://www.vpnranks.com/wp-content/uploads/2021/07/PIA-china-server.png)
#ASTRILL IN CHINA SEPTEMBER 2018 SLOW DRIVER#
When the system asked to page in some memory, the driver checked if there was a compressed copy in the pool.
![astrill in china september 2018 slow astrill in china september 2018 slow](https://www.vpnmentor.com/wp-content/uploads/2019/05/Astrill-screenshot-06-autoresized86X.jpg)
The format of each block in the compression buffer was a byte specifying the compression algorithm, followed by the compressed data. When memory was paged out, the driver compressed the memory and added it to the pool. What they did was allocate a chunk of non-paged memory at system startup and use it as a compression pool.
#ASTRILL IN CHINA SEPTEMBER 2018 SLOW CODE#
The Windows 3.0 and 3.1 device driver kits (DDKs) included the source code for the paging driver, and the software’s custom paging driver was clearly based on the one that shipped in one of the older DDKs.
#ASTRILL IN CHINA SEPTEMBER 2018 SLOW FULL#
I ended up doing a full disassembly of the custom paging driver they installed.
#ASTRILL IN CHINA SEPTEMBER 2018 SLOW PATCH#
It’s possible that the software was tripping over some bug in Windows 95, and that meant having to put out a patch for it. In late 1995, I was asked to investigate the product because it was causing Windows 95 machines to crash and was generating a lot of support calls, not to mention bad PR. There are many write-ups of what the software did (and notably didn’t do), but almost none of them dug deep into the code to explain what it was doing. One of them that drew a lot of attention at the time was SoftRAM 95, a product whose box claimed it would “Double Your Memory”. With the release of Windows 95 came quite a number of software products tailored to run on it.