Memory ứng dụng chuyên sâu hoặc các ứng dụng đòi hỏi nhiều bộ nhớ được giới hạn bởi:
- Tốc độ của RAM bên ngoài bộ vi xử lý
- Tốc độ của bộ nhớ cache bên trong bộ vi xử lý
- Số đơn vị chia sẻ bộ nhớ xe buýt
- Bộ nhớ ảo
Thật không may, thes e hạn chế không phải là người chơi chính trong hoạt động của chương trình. Hiệu ứng lớn hơn là: Số lượng CPU, hoạt động I/O và các tác vụ khác đang chạy với chương trình của bạn. Thay đổi các mục này sẽ tác động đến chương trình của bạn hơn là thay đổi các mục ảnh hưởng đến băng thông bộ nhớ.
1. Tốc độ RAM bên ngoài bộ xử lý
Bộ xử lý phải nằm ngoài vỏ và lấy hướng dẫn và dữ liệu từ RAM. RAM có tốc độ khác nhau mà tại đó nó có thể truy cập vào các ô và trả về các bit trở lại bộ xử lý. Nói chung, điều này được đánh dấu bằng đơn vị Hz. Bộ nhớ càng nhanh, thời gian của bạn càng mất nhiều thời gian cho quá trình tải và hướng dẫn tải xuống và chương trình của bạn sẽ thực thi nhanh hơn.
Lưu ý: Tăng tốc độ bộ nhớ vượt quá khả năng của bộ xử lý sẽ không làm tăng hiệu suất. Nó thay đổi nút cổ chai từ RAM sang bộ vi xử lý. Xem thêm # 3.
2. Tốc độ bộ nhớ cache bên trong bộ xử lý Bộ nhớ cache nằm bên trong vỏ bộ xử lý. Đây là một trong những loại bộ nhớ nhanh nhất hiện có. Bộ vi xử lý sẽ tìm kiếm bộ nhớ này trước khi tìm kiếm RAM. Cải thiện tốc độ và số lượng của bộ nhớ này sẽ cải thiện hiệu suất của bộ xử lý của bạn, trừ khi các lõi khác cũng đang truy cập bộ nhớ này. Đối với nhiều lõi truy cập bộ nhớ, cần phải có giải pháp xung đột, điều này có thể làm chậm hiệu suất ứng dụng của bạn.
Lưu ý: Không có gì bạn có thể làm để tăng tốc hoặc thay đổi kích thước bộ nhớ cache ngoại trừ có bộ xử lý khác. Bộ nhớ cache không phải là thứ có thể dễ dàng thay đổi bằng bàn tay con người hoặc robot.
3. Số lượng thực thể chia sẻ bus bộ nhớ
Bus bộ nhớ giống như đường cao tốc mà thực thể dùng để truy cập RAM. Giống như với đường cao tốc, nhiều làn đường hơn có nghĩa là thông lượng nhanh hơn (ví dụ: chiều rộng 16 bit so với 32 bit). Nhiều xe buýt cũng có giới hạn tốc độ, một lần nữa giới hạn càng cao thì càng có thể truy cập nhanh hơn. Có lẽ khái niệm đáng chú ý nhất là số lượng thực thể kết nối với xe buýt. Như với đường cao tốc, nhiều người dùng hơn làm chậm lưu lượng truy cập. Trong hầu hết các bus bộ nhớ, chỉ một thực thể có thể sử dụng nó tại một thời điểm; các thực thể khác phải đợi. Giảm số lượng thực thể cần sử dụng bus bộ nhớ sẽ tăng tốc chương trình của bạn.
Một số thực thể phổ biến chia sẻ bus bộ nhớ: CPU, bộ điều khiển DMA, bộ xử lý video, bộ xử lý âm thanh và bộ xử lý mạng hoặc I/O.
4. Bộ nhớ ảo. Nhiều máy tính hiện đại sử dụng bộ nhớ ảo. Nếu chương trình yêu cầu nhiều bộ nhớ hơn RAM có sẵn, hệ điều hành sẽ trao đổi các phần bộ nhớ với các vùng trên ổ đĩa cứng. Điều này tốn nhiều thời gian hiệu suất hơn là giảm tốc độ hoạt động của bộ nhớ. Một chương trình chuyên sâu bộ nhớ hiệu quả hơn bằng cách chỉ sử dụng bộ nhớ được cấp phát cho nó hơn tất cả bộ nhớ mà nó có thể cần. Giảm các hoán đổi bộ nhớ ảo sẽ tăng tốc một chương trình.
Tóm lại, tốc độ tối đa mà ứng dụng của bạn có thể thực thi. Bộ nhớ, cả bộ đệm trong và bộ nhớ ngoài đều là các yếu tố góp phần vào giới hạn trên. Có những yếu tố lớn hơn ngăn các ứng dụng đạt đến giới hạn này. Một số yếu tố này là các hoạt động I/O và các nhiệm vụ đồng thời khác. Việc thiết kế và thực hiện một chương trình cũng có thể góp phần vào sự chậm chạp. Hiệu suất cao hơn có thể đạt được bằng cách loại bỏ các hoạt động I/O, các tác vụ đồng thời và thiết kế lại phần mềm bằng cách thay đổi giới hạn trên của tốc độ truy cập bộ nhớ. Thay đổi các giới hạn này sẽ làm tăng hiệu suất của chương trình, nhưng không mạnh bằng các kỹ thuật khác.
Thật không may, bạn không thể tránh bị xâm nhập vào bộ nhớ cache phức tạp nếu bạn muốn câu trả lời cho câu hỏi của mình – erikkallen
Hm, giả sử tôi khởi tạo toàn bộ bộ nhớ với 1.0s. Sau đó, tôi nhân mỗi phần tử với một số không đổi. Và lặp lại quá trình đó .. – hanno
Truy cập tất cả bộ nhớ sẽ khiến bạn bị giới hạn bởi băng thông bộ nhớ, trừ khi khoảng cách giữa các phần tử được truy cập là rất dài. Mà, từ những gì nó giống như âm thanh, nó sẽ không được. –