Sử dụng nó để truy cập và phân bổ số lượng lớn bộ nhớ một cách hiệu quả, chẳng hạn như trong công cụ voxel của riêng bạn! (tức là trò chơi theo phong cách Minecraft.)
Theo kinh nghiệm của tôi, JVM thường không thể loại bỏ giới hạn - kiểm tra tại chỗ bạn thực sự cần nó. Ví dụ: nếu bạn đang lặp qua một mảng lớn, nhưng quyền truy cập bộ nhớ thực tế được giấu bên dưới một lệnh gọi phương thức * không ảo trong vòng lặp, JVM vẫn có thể thực hiện kiểm tra giới hạn với mỗi lần truy cập mảng, thay vì chỉ một lần trước đó vòng lặp. Do đó, để tăng hiệu năng tiềm năng lớn, bạn có thể loại bỏ giới hạn JVM - kiểm tra bên trong vòng lặp thông qua phương thức sử dụng sun.misc.Unsafe để truy cập trực tiếp vào bộ nhớ, đảm bảo thực hiện bất kỳ giới hạn nào - tự kiểm tra tại đúng vị trí. (Bạn là sẽ giới hạn kiểm tra ở mức độ nào, phải không?)
* bởi không ảo, ý tôi là JVM không cần phải tự động giải quyết bất kỳ phương thức cụ thể nào của bạn, bởi vì bạn đã đảm bảo chính xác rằng lớp / phương thức / thể hiện là một sự kết hợp giữa tĩnh / cuối cùng / những gì bạn có.
Đối với công cụ voxel tự trồng tại nhà của tôi, điều này dẫn đến tăng hiệu suất đáng kể trong quá trình tạo và xê-ri hóa chunk (iow nơi tôi đang đọc / ghi vào toàn bộ mảng cùng một lúc). Kết quả có thể khác nhau, nhưng nếu thiếu giới hạn loại bỏ là vấn đề của bạn, thì điều này sẽ khắc phục nó.
Có một số vấn đề tiềm ẩn lớn với vấn đề này: cụ thể, khi bạn cung cấp khả năng truy cập bộ nhớ mà không giới hạn kiểm tra cho khách hàng của giao diện của bạn, họ có thể sẽ lạm dụng nó. (Đừng quên rằng tin tặc cũng có thể là khách hàng của giao diện của bạn ... đặc biệt là trong trường hợp công cụ voxel được viết bằng Java.) Vì vậy, bạn nên thiết kế giao diện của mình theo cách mà việc truy cập bộ nhớ không thể bị lạm dụng hoặc bạn nên cực kỳ cẩn thận để xác nhận sử dụng dữ liệu trước khi nó có thể bao giờ hết, bao giờ trộn lẫn với giao diện nguy hiểm của bạn. Xem xét những điều thảm khốc mà một hacker có thể làm với quyền truy cập bộ nhớ không được kiểm soát, có lẽ tốt nhất là thực hiện cả hai cách tiếp cận.