Máy tính không sử dụng hơn 4 trong số 8GB RAM RAM của tôi? (Máy tính 64 bit)


17

Gần đây, để chứng minh máy tính của tôi trong tương lai, tôi đã thêm vào bộ nhớ 4GB ban đầu của mình. Tôi đã mang tổng bộ nhớ lên 8GB và tôi không có thay đổi đáng chú ý nào về tốc độ - ngay cả khi cần. Tôi đã xem xét Trình quản lý tác vụ và thấy rằng máy tính của tôi sẽ KHÔNG sử dụng hơn 4GB bộ nhớ, ngay cả khi cả Chrome và Firefox đều mở với 20 tab mỗi thẻ.

Sau khi nghiên cứu, mọi thứ mà mọi người đề nghị làm là kiểm tra xem bộ nhớ có thể sử dụng được bao nhiêu. Thật kỳ lạ, nó nói rằng tôi có 8GB bộ nhớ và 7,74GB là có thể sử dụng được.

Thông số kỹ thuật cho HP Pavilion g7-1075dx của tôi có thể được tìm thấy ở đây. Nó là một máy tính xách tay với Windows 7 Home Premium 64-bit với AMD Phenom II.

Câu hỏi chính của tôi là: với máy tính 64 bit của tôi, tại sao máy tính của tôi không sử dụng nhiều hơn 4GB bộ nhớ, ngay cả khi hơn 7 có thể sử dụng được?

EDIT: nếu nó giúp, Resource Monitor mô tả tất cả các RAM khác là "Chờ"


1
Làm thế nào bạn có thể thấy rằng nó không sử dụng nhiều hơn 4GB? Bạn đã thử các chương trình khác của tôi để kiểm tra hoặc sử dụng bộ nhớ chưa? Chrome và Firefox không đòi hỏi trí nhớ khôn ngoan ...
Mokubai

9
Cho đến nay, không ai đề cập rằng nhiều RAM hơn không làm cho máy tính nhanh hơn mỗi giây. Lần duy nhất bạn sẽ thấy một cú hích tốc độ đáng chú ý là nếu khối lượng công việc của bạn tiêu tốn quá nhiều RAM mà Windows cần liên tục chuyển sang đĩa - trong trường hợp này, việc thêm nhiều RAM chắc chắn có thể tăng tốc mọi thứ. Nhưng 98% mọi người không làm những việc cần RAM 4GB, và do đó, sẽ không bao giờ gặp bất kỳ lợi ích hữu hình nào khi có tất cả RAM đó.
misha256

1
@mattycfp Có một khả năng khác mà tôi biết có thể hạn chế việc sử dụng RAM Windows. Có thể là bạn, một người nào khác, hoặc một số phần mềm đặt GIỚI HẠN cho việc sử dụng RAM không? Hãy xem bài viết này và làm theo hướng dẫn: helpdeskgeek.com/windows-7/iêu
misha256

1
Firefox có giới hạn 2GB trên tất cả các tab / quy trình, chrome cũng có thể. Điều này là ngoài giới hạn bình thường cho mỗi quá trình.
JamesRyan

6
Có Firefox và Chrome mở với 20 tab, mỗi tab chắc chắn là không đủ. Tôi có Firefox mở với 157 tab, nó thậm chí không tiêu tốn 1 GB RAM. Kiểm tra trong khi chạy các trò chơi. Câu trả lời của Jamie Hanrahan rất hay và chi tiết. Để biết thêm thông tin, hãy đọc bài đăng trên blog của Mark Russinovich Đẩy các giới hạn của Windows. liên kết .
bắt đầu

Câu trả lời:


27

nếu nó giúp, Resource Monitor mô tả tất cả các RAM khác là "Chờ"

RAM "chờ" sử dụng. Nó đang được sử dụng làm bộ đệm trang (nó giữ các trang bị mất gần đây từ tất cả các bộ làm việc của quy trình; tức là lỗi trang có thể được khắc phục mà không cần vào đĩa) và cũng để lưu trữ bộ đệm chủ động của SuperFetch.

Nó được coi là "khả dụng" vì các trang ở chế độ chờ không phải ghi vào đĩa trước khi chúng có thể được gán cho một số mục đích sử dụng khác. Chẳng hạn như khi một quá trình chạm một lỗi trang mà không cần đọc từ đĩa, mới trang vật lý (s) phải được phân bổ cho các quá trình đó, và nếu cần thiết này có thể được lấy từ danh sách chờ. (Đây không phải là lựa chọn đầu tiên để tìm các trang cho mục đích này, đó sẽ là miễn phí và sau đó là danh sách trang không.)

Nói cách khác, hệ thống của bạn đang hoạt động như bình thường.

Bạn có thể buộc hệ thống của mình nhận được nhiều RAM hơn vào trạng thái "đang sử dụng" một cách dễ dàng bằng công cụ dòng lệnh testlimit, một trong những công cụ được sử dụng trong các thử nghiệm trong Windows Internals . Nó không phải là một phần của các công cụ hệ thống thông thường nhưng được liên kết với chúng; tìm nó ở đây tại trang web sysiternals. Tải xuống là một tệp zip chứa hai phiên bản, testlimit.exe và testlimit64.exe. Cả hai đều được liên kết nhận biết địa chỉ lớn, vì vậy phiên bản 32 bit sẽ có thể phân bổ tối đa 3 GiB trên máy 32 bit được khởi động với / 3GB, tối đa 4 GiB trên máy 64 bit.

c:\> testlimit -? giúp đỡ

c:\> testlimit -d 4 -c 512sẽ cố gắng phân bổ 2 GiB không gian địa chỉ ảo riêng tư theo quy trình trong 512 phân bổ của 4 MiB mỗi lần. Điều này sẽ hoạt động tốt trên máy 64 bit. Trên máy 32 bit không khởi động với / 3GB (hầu hết là không), nó có thể bị lỗi sớm hơn một chút vì đã có một vài MiB của công cụ trong quá trình (như chính chương trình, tất cả các DLL, v.v.), vì vậy không có đủ 2 GiB để chương trình phân bổ.

Trong cả hai trường hợp, sẽ có giảm RAM "khả dụng" và tăng RAM "Đang sử dụng", nhưng không nhất thiết phải có giá trị 2 GiB vì không có gì đảm bảo rằng HĐH sẽ để cả 2 GiB trong bộ làm việc riêng tư của quy trình. Ngay cả khi nó làm điều đó trong thời gian ngắn, bạn có thể thấy bộ quy trình làm việc giảm sau đó khi HĐH quyết định "hm, bạn không thực sự làm gì với nó, các quy trình khác cần nhiều hơn" và bỏ qua nó.

Tăng kích thước của "khối" phân bổ quá nhiều, giảm số lượng khối tương ứng, và nó có thể sẽ thất bại sớm hơn vì mỗi phân bổ phải gần như liền kề nhau. ví dụ: cố gắng tìm bảy khối 512 MiB trong không gian địa chỉ 4 GiB và bạn có thể sẽ thất bại.

Nếu bạn sử dụng tùy chọn l (eak) thay vì d (irty), chương trình sẽ phân bổ không gian ảo nhưng sẽ không bao giờ tham chiếu đến nó. Điều này sẽ không dẫn đến bất kỳ sự sụt giảm đáng kể nào về RAM "có sẵn".

(Tùy chọn d (irty) lấy tên từ "bit trang bẩn" trong mục nhập bảng trang x86 / x64, được đặt khi trang ảo tương ứng được truy cập bằng toán hạng kiểu "sửa đổi", nghĩa là nội dung của trang có đã được thay đổi. Đây là dấu hiệu của Windows rằng, nếu trang phải được gỡ bỏ khỏi bộ làm việc của quy trình, nội dung của nó phải được lưu ở đâu đó trước khi trang có thể được sử dụng cho mục đích khác. Các trang có bit "bẩn" được đặt "danh sách trang đã sửa đổi" ngay sau khi bị trục xuất, từ đó, Windows ghi chúng vào các cửa hàng sao lưu tương ứng của chúng.)

Bạn sẽ cần có đủ "cam kết" có sẵn để các thử nghiệm này hoạt động như được mô tả ở trên (ngay cả đối với tùy chọn l (eak), mặc dù tùy chọn này không sử dụng bất kỳ lượng RAM đáng kể nào). Cụ thể, "giới hạn cam kết" của bạn phải cao hơn ít nhất 2 GiB (hoặc tuy nhiên bạn đang phân bổ nhiều hơn) so với "phí cam kết" trước khi bắt đầu thử nghiệm. Lưu ý rằng điều này áp dụng ngay cả khi bạn đang sử dụng tùy chọn l (eak), không chỉ d (irty). Nếu bạn gặp phải giới hạn này, bạn sẽ thấy cửa sổ bật lên "hệ thống sắp hết bộ nhớ" hoặc tương tự. Tất nhiên, cách chữa trị là thêm nhiều RAM hơn và / hoặc tăng cài đặt tệp trang của bạn.


16

Windows thực sự có thể được cấu hình để hạn chế sử dụng RAM. Tôi không biết làm thế nào hoặc ai sẽ cấu hình cài đặt này trên máy tính xách tay của bạn, nhưng bạn nên kiểm tra:

Cài đặt tối đa Ram

Bài viết này có nhiều chi tiết hơn, nhưng đi đến hộp thoại trên rất dễ dàng:

  1. Nhấp vào Biểu tượng Bắt đầu và nhập msconfig.exevào hộp tìm kiếm

    Làm thế nào để khởi chạy msconfig

  2. Khởi chạy msconfig.exe, nhấp vào Boottab, sau đó nhấp vào Advanced Options...nút và bạn đang ở trong:

    hộp thoại cài đặt khởi động msconfig

  3. Nhập giá trị hợp lý, ví dụ 8192 cho RAM 8GB hoặc bỏ chọn Maximum memoryhoàn toàn hộp kiểm sẽ khiến Windows sử dụng tất cả RAM bạn có. Tôi chắc chắn sẽ thử cả hai tùy chọn.

    cài đặt ram tối đa


@ misha256 - Bối rối sâu sắc bởi một câu trả lời có rất ít nội dung ban đầu, và vâng, nếu có ai đó gửi một trong những câu trả lời tôi thậm chí sẽ không nghĩ hai lần về câu trả lời (ngoại trừ có thể đánh giá sự hữu ích của chúng hơi khắc nghiệt hơn).
Ramhound

@ misha256 nếu đây là sự cố thì OP sẽ không thấy khoảng 4 GB được sử dụng và khoảng 4 GB chờ khác. RAM bị loại trừ bởi tùy chọn đó không hiển thị ở chế độ "chờ"; OP cũng sẽ không thấy "8GB bộ nhớ và 7,74GB là có thể sử dụng được". (dự kiến ​​256 MB không thể "sử dụng được" do ví dụ như thẻ video).
Jamie Hanrahan

10

Bạn có thể sử dụng SysIternals RAMMap để xem chính xác những gì PC làm với RAM vật lý của bạn . Các công cụ khác như Trình quản lý tác vụ hoặc Process Explorer chủ yếu tập trung vào bộ nhớ ảo và không phải là công cụ tốt nhất cho tình huống này.

Trong tab "Sử dụng số lượng", bạn có thể thấy rằng các phần lớn không được sử dụng trong khi bạn chưa mở nhiều ứng dụng.

Bản đồ RAM SysIternals

Điều này không có nghĩa là PC của bạn sẽ vẫn ở trạng thái này. Chỉ cần mở một vài chương trình và bộ nhớ sẽ được sử dụng.


Không nên sử dụng thuật ngữ "RAM ảo". Ngoài ra, tôi sẽ không nói rằng những công cụ khác đó tập trung chủ yếu vào bộ nhớ ảo - chúng có rất nhiều bộ đếm có sẵn cho thấy việc sử dụng bộ nhớ vật lý.
Jamie Hanrahan

5

Trích dẫn từ một bài viết rất hay về chủ đề này:

Nhiều bộ nhớ hơn không thực sự tăng tốc độ xử lý [của máy tính]. Chỉ có CPU nhanh hơn có thể làm điều đó.

Và theo kinh nghiệm của tôi, điều đó hoàn toàn đúng, nói chung. Trừ khi bạn đang chạy nhiều chương trình cùng một lúc những chương trình đó có yêu cầu RAM đáng kể, bạn sẽ khó có thể thấy bất kỳ lợi ích nào trong thế giới thực khi có nhiều hơn 4GB RAM.

Mọi người dường như không nhận ra rằng 4GB là một địa ngục của rất nhiều RAM. Làm cho Windows sử dụng nhiều hơn đó là nỗ lực. Bạn sẽ phải mở nhiều ứng dụng khác nhau và trong các ứng dụng đó, mở một số tệp lớn. Đưa vào một vài tab video YouTube và bạn có thể bắt đầu thấy> mức sử dụng 4GB.


2
@mattycfp Tôi vừa mở 16 Windows trên máy 4GB, bao gồm Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (một hog RAM đã biết), Photoshop, Media Player, VLC, MPC-HC, cộng với một số ứng dụng ngẫu nhiên khác và tôi đang chuyển đổi giữa chúng để làm công cụ, tải tài liệu, phát video, mọi thứ và mức sử dụng RAM thực tế của tôi là 2.2GB VÀ máy vẫn NHANH CHÓNG như trước đây. Xem nào, 4GB thực hiện mọi thứ dễ dàng ;-)
misha256

3
@mattycfp 120 Windows của FF? Bạn có nhiều khả năng tối đa hóa CPU của mình hơn RAM làm điều đó, đặc biệt là trên máy tính xách tay. Cũng đừng quên FF là một ứng dụng 32 bit và nhiều cửa sổ FF thực sự CHIA SẺ một quy trình 32 bit duy nhất, vì vậy FF thực sự khá hạn chế, nó chỉ có thể sử dụng 2GB trong tổng số 8GB của bạn. Đó là lý do tại sao bạn cần chạy nhiều ứng dụng khác nhau cùng một lúc để kiểm tra cách Windows sử dụng RAM của bạn, không chỉ 120 Windows của FF.
misha256

4
@ misha256 Bạn sẽ thấy hiệu suất tăng nếu hệ thống của bạn liên tục hoán đổi bộ nhớ. Khi áp suất bộ nhớ tăng, phân trang tăng và hệ thống chậm lại. Không phải việc thêm bộ nhớ sẽ giúp bạn đi nhanh hơn, nhưng nó sẽ giúp bạn không bị chậm lại, đặc biệt là nếu phần mềm liên quan giả định một số lượng phân trang nhất định trong các yêu cầu hệ thống của nó. Bài báo đó dường như không đề cập nhiều về phân trang. Phân trang là những gì làm bạn chậm lại.
phyrfox

4
@ misha256 Tôi đã mở IRC, Spotify, Notepad ++, Chrome và Trình quản lý tác vụ và tôi đang sử dụng 3.02GB trên tổng số 4GB của mình :( Mở 3 phiên bản VS2013 (mà tôi có xu hướng làm việc) và điều đó giúp tôi tối đa. dễ dàng hơn một chút để đạt đến giới hạn 4GB so với bạn nghĩ, nhưng thực tế đòi hỏi người sử dụng năng lượng.
Thebluefish

1
@ misha256 Chỉnh sửa: FF có địa chỉ lớn và có thể xử lý tối đa 3 GB trong quy trình 32 bit. Phiên bản FF 64 bit (hiện đang trong giai đoạn thử nghiệm cho Windows) rõ ràng có thể giải quyết nhiều hơn nữa. Tôi cũng cảm thấy bạn đang khái quát một chút quá nhiều khi nói rằng thật khó để "sử dụng" (bộ làm việc riêng tư thường trú) hơn 4GB RAM; nó thực sự phụ thuộc rất nhiều vào những gì bạn đang làm và mức độ bạn tiếp tục mở. Cách sử dụng cơ bản của tôi đã vượt quá điều đó.
Bob

5

Windows thực hiện một số công cụ thông minh như bộ nhớ phân trang. Có thể là nó thấy hầu hết các tác vụ bạn đang làm là không cần thiết và quyết định đổ một khối lượng nội dung vào tệp trang, làm cho nó giống như làm việc đó chỉ để tránh sử dụng hết RAM của bạn. Bạn có thể kiểm tra lý thuyết này bằng cách vô hiệu hóa phân trang, mặc dù đây không phải là điều bạn nên cấu hình vĩnh viễn. Có rất nhiều hướng dẫn trên internet để làm điều này. Một trong những điều nó làm (ngay cả trên các máy 24 GB và 64 GB của tôi) là làm cho các quy tắc phân trang trở nên nghiêm ngặt hơn nhiều khi đạt mức tiêu thụ xấp xỉ 50%, 80% và 90% (những con số này là gần đúng). Tôi đã nhận thấy ở mỗi giai đoạn này, một khối lượng nội dung sẽ được đổ vào tệp trang.

Một điều thú vị để làm có thể là một cái gì đó như thế này:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

Đó là một số mã C. Nhận GCC hoặc một số trình biên dịch, tạo cho mình một exe và xem mức tiêu thụ bộ nhớ của bạn tăng lên. Nếu bạn muốn tiêu thụ nhiều hơn 2GB bộ nhớ, bạn sẽ cần biên dịch và chạy dưới dạng quy trình 64 bit. Nếu bạn thích kiểu đó thì đó có thể là một thử nghiệm thú vị, nếu không có gì khác :)

Chỉnh sửa: Chỉ muốn lưu ý rằng chương trình sẽ không chết với điều này. Tôi đã chỉnh sửa nó từ một số mã trước đó vì tôi không chắc rằng mã khác sẽ hoạt động (bộ nhớ sẽ được phân trang, dẫn đến không có bộ nhớ nào bị tiêu tốn, lol). Mã mới chứa một dòng int gb = 2; // memory to consume in GB- việc thay đổi 2 sẽ điều chỉnh lượng bộ nhớ mà chương trình sẽ tiêu thụ, do đó bạn có thể đặt nó để sử dụng bao nhiêu tùy thích. Đặt nó thành một cái gì đó cao hơn những gì hệ thống của bạn có thể sẽ khiến nó bị sập (không được kiểm tra, vì vậy hãy thận trọng khi sử dụng)


Tôi ước tôi có thể biên dịch nó, nhưng Internet của tôi cứ bị hỏng mỗi lần tải xuống tôi thử: U
mattycfp

5
@mattycfp Vì vậy, bạn không thể sử dụng> 4GB RAM trong HĐH và tất cả các bản tải xuống của bạn có bị hỏng không? Đã đến lúc (a) WIPE ổ cứng và thực hiện cài đặt hệ điều hành mới, hoặc (b) ném máy tính xách tay vào thùng và lấy một cái thích hợp.
misha256

1
Chương trình được cung cấp phân bổ và "chạm" 2 GB bộ nhớ ảo, mỗi lần một trang, điều này sẽ dẫn đến mỗi trang bị lỗi vào RAM ngay sau khi được phân bổ. Nhưng điều đó không đảm bảo rằng Windows sẽ giữ tất cả trong RAM cùng một lúc. Vì chương trình không liên tục truy cập tất cả các vm, nên các trang được phân bổ trước có thể bị phân trang. Bạn có thể có được hiệu ứng tương tự như chương trình đó với công cụ "Testlimit" của Windows Internals, tùy chọn -d.
Jamie Hanrahan

@mattycfp nếu đó là trường hợp, bạn có thể muốn thấy rằng RAM không có lỗi ... Có phải mọi tệp bạn tải xuống đều bị hỏng không? Đôi khi cũng có vấn đề với các thanh không tương thích, vì vậy bạn nên kiểm tra hướng dẫn sử dụng bo mạch chủ và xác nhận rằng RAM của bạn được sắp xếp theo các hướng dẫn đó (các khe sẽ được đánh số 1 & 2 hoặc 1-4 và thường phải ghép nối 1 & 3 với cùng "loại" hoặc "kiểu và kiểu" của RAM, cũng như 2 và 4). & Có, chương trình này nên sử dụng tối đa 2GB, có thể chỉnh sửa bằng cách thay đổi dòng int gb = 2; // memory to consume in GB- chỉ cần thay đổi 2.
XtrmJosh

Tại sao bạn lại khai báo gb là kiểu int khi chỉ sử dụng phôi nó để không dấu? Bạn cũng đang đối xử với tôi theo cùng một cách thực hiện một so sánh hỗn hợp giữa int và cast-to unsign. Vì vậy, chỉ cần làm cho tôi không dấu dài, cũng có.
JDługosz

1

Bạn có đang sử dụng chương trình 32 bit để kiểm tra máy tính đang chạy nhanh như thế nào không? Nếu vậy, lưu ý rằng địa chỉ 32 bit chỉ có thể trỏ đến 4 GB RAM, ngay cả khi bạn có nhiều RAM hơn. Bạn sẽ cần phải lặp lại thử nghiệm bằng chương trình 64 bit và kiểm tra tốc độ của nó với 4 GB RAM hiện tại và một lần nữa với 8 GB RAM hiện tại, nếu bạn muốn có kết quả hữu ích. Ngoài ra, nó sẽ cần phải là một chương trình 64 bit có thể sử dụng hơn 4 GB bộ nhớ để chạy nhanh hơn - không phải tất cả chúng đều có thể. Để biết chương trình có 32 bit hay không, hãy khởi động chương trình và để chương trình chạy, sau đó khởi động Trình quản lý tác vụ Windows, nhấp vào Quy trình và cuộn xuống cho đến khi bạn tìm thấy chương trình quan tâm. Nếu tên của chương trình trong cột Tên ảnh được theo sau bởi khoảng trắng, thì * 32, thì đó là chương trình 32 bit.


nếu bạn chạy một số chương trình 32 bit, tổng mức sử dụng RAM của chúng có thể dễ dàng đạt tới 8 GB.
Jamie Hanrahan

0

Nhận quá trình thám hiểm (procexp) từ Sysiternals . Nó có một biểu đồ tài nguyên và có thể hiển thị việc sử dụng bộ nhớ theo quy trình, tốt hơn nhiều so với chế độ xem quy trình chứng khoán.

Bạn có thể xem việc sử dụng ram vật lý so với việc sử dụng spqce ảo, để xem nếu bạn chỉ đơn giản là không sử dụng hết hoặc bạn dường như cần nhiều hơn nhưng đang giới hạn việc sử dụng vật lý.

Hầu hết các chương trình trần tục sử dụng một kích thước tập làm việc khác nhau sẽ giữ cho nhu cầu thấp. Nếu một chương trình phân bổ một tấn bộ nhớ thì nó không thực sự sử dụng tất cả bộ nhớ đó cùng một lúc ...

Windows sẽ nhanh chóng di chuyển các trang từ chương trình của bạn sang một danh sách có sẵn, nhưng nếu xảy ra lỗi trang, nó sẽ được kéo trở lại từ danh sách mà không phải tải nó từ tệp hoán đổi. Chế độ chờ có thể bao gồm những thứ này. Các công cụ khác nhau nhãn các bộ khác nhau theo những cách khác nhau.

Bạn có thể thử tắt tệp hoán đổi, ít nhất là cho thử nghiệm này. Điều đó sẽ khiến bộ nhớ dữ liệu thực sự được sử dụng. Mặc dù procexp có thể đủ để thấy rõ điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.