Kết quả tìm kiếm jvm
Những xu hướng, công cụ lập trình mới đang góp phần vào sự thay đổi của thế giới công nghệ. Giới lập trình không dễ thay đổi nền tảng của mình nhưng các xu hướng đang dần giải phóng sức lao động cho họ.
Rất dễ gặp phải tình trạng cạn bộ nhớ riêng với các thời gian chạy 32-bit vì vùng địa chỉ tương đối nhỏ. Vùng người sử dụng từ 2 đến 4GB mà các hệ điều hành 32-bit cung cấp thường ít hơn dung lượng bộ nhớ vật lý được gán cho hệ thống và các ứng dụng hiện đại xử lý nhiều dữ liệu có thể dễ dàng mở rộng để lấp đầy vùng nhớ có sẵn.
Việc đầu tiên cần làm khi phải đối mặt với một java.lang.OutOfMemoryError hoặc một thông báo lỗi về thiếu bộ nhớ là xác định loại bộ nhớ nào đã cạn kiệt. Cách dễ nhất để làm điều này là trước tiên kiểm tra xem vùng heap java đã đầy chưa. Nếu vùng heap Java không gây ra tình trạng OutOfMemory (thiếu bộ nhớ), thì bạn nên phân tích cách sử dụng vùng heap riêng.
Để giúp bạn thấy việc cạn kiệt bộ nhớ riêng ảnh hưởng đến việc triển khai thực hiện Java mà bạn đang sử dụng như thế nào, mã mẫu của bài viết này (xem Tải về) có chứa một số chương trình Java gây ra sự cạn kiệt vùng heap riêng theo nhiều cách khác nhau. Các ví dụ này sử dụng một thư viện riêng được viết bằng C để tiêu dùng tất cả các vùng địa chỉ riêng và sau đó cố gắng thực hiện một số hành động có sử dụng bộ nhớ riêng. Các ví dụ được cung cấp đã được xây dựng (built) sẵn, mặc dù các chỉ thị biên dịch chúng được cung cấp trong tệp README.html trong thư mục cao nhất của gói ví dụ mẫu.
Một thời gian chạy Java đối phó hoàn toàn khác nhau với việc dùng hết vùng heap Java so với việc dùng hết vùng heap riêng, mặc dù cả hai tình thế có thể làm xuất hiện các dấu hiệu tương tự nhau. Một ứng dụng Java rất khó hoạt động khi vùng heap Java bị cạn kiệt — bởi vì rất khó cho một ứng dụng Java để thực hiện bất cứ việc gì mà không cấp phát các đối tượng. Hiệu năng GC kém và các lỗi OutOfMemoryError báo hiệu một vùng heap đầy được tạo ra ngay khi vùng heap tràn đầy.
Thời gian chạy của Java là một tiến trình hệ điều hành chịu các ràng buộc của phần cứng và hệ điều hành mà tôi nêu trong phần trước. Các môi trường thời gian chạy cung cấp các khả năng theo đòi hỏi của mã của người sử dụng còn chưa biết; điều này làm cho không thể dự đoán môi trường thời gian chạy sẽ đòi hỏi tài nguyên nào trong mỗi tình huống. Mỗi hành động mà một ứng dụng Java thực hiện bên trong môi trường Java được quản lý đều có khả năng có thể ảnh hưởng đến các yêu cầu tài nguyên của thời gian chạy cung cấp môi trường đó. Phần này mô tả các ứng dụng Java tiêu dùng bộ nhớ riêng như thế nào và tại sao.
Tôi sẽ bắt đầu bằng cách giải thích những hạn chế về bộ nhớ riêng do hệ điều hành và phần cứng nằm bên dưới áp đặt. Nếu bạn quen với việc quản lý bộ nhớ động trong một ngôn ngữ như C, thì bạn có thể chuyển sang phần tiếp theo.
Việc sử dụng hết heap (Tạm hiểu: heap là vùng lưu trữ đặc biệt trong bộ nhớ được dùng để lưu giữ các tài liệu quan trọng như tài nguyên hệ thống và các loại đối tượng khác nhau đang được sử dụng. Các heap đều được giới hạn trong phạm vi 64k. Sau đây gọi là vùng heap) của Java™ không phải là nguyên nhân duy nhất tạo ra một lỗi java.lang.OutOfMemoryError. Nếu bộ nhớ riêng (native memory) dùng hết, có thể xảy ra các lỗi OutOfMemoryError (lỗi thiếu bộ nhớ) mà các kỹ thuật gỡ lỗi thông thường của bạn sẽ không thể giải quyết được. Bài viết này giải thích bộ nhớ riêng là gì, thời gian chạy của Java sử dụng nó như thế nào, việc dùng hết nó sẽ như thế nào và làm thế nào để gỡ lỗi cho một lỗi OutOfMemoryError trên Windows® và Linux®.
Once a lightweight browser scripting language, JavaScript is making a resurgence on the server.
Từ khóa: Java
An overview of the JVM's security model and a look at its built-in safety features (phần 5)
Trang: [1] 2