2016-11-24 16 views
9

Tôi đang tạo một ứng dụng dành cho máy tính để bàn trong java và đang thực hiện một số tối ưu hóa bộ nhớ. Điều đó khiến tôi đi qua hai luồng chạy trong JVM, cả hai tên:kết nối RMI TCP là gì

RMI TCP kết nối

Và họ đang cả hai đóng góp vào tăng trưởng đống khá đáng kể (ít quan điểm của tôi)

Bây giờ tôi don' Tôi biết nhiều, nhưng TCP nghe với tôi như một số thứ internet. Từ những gì tôi đã quản lý để tìm thấy trên google, nó có một cái gì đó để làm với serialization/deserialization trên internet.

Nhưng ứng dụng của tôi không cần internet, vì vậy tôi muốn biết hai điều:

  1. gì được họ và họ đang làm gì trong JVM của tôi?
  2. Tôi có thể loại bỏ chúng bằng cách nào đó không?

enter image description here

công cụ của tôi đã được "Java VisualVM". Một mặc dù đã vượt qua tâm trí của tôi rằng hai chủ đề được sinh ra như là kết quả của việc sử dụng công cụ này, trong trường hợp này tôi sẽ cảm thấy một chút ngu ngốc.

+0

Bạn là chính xác. Chúng được sinh ra như là kết quả của việc sử dụng công cụ này. – EJP

+0

tuyệt vời, cảm ơn. Đúng và ngu ngốc. Tôi sẽ đánh dấu đây là câu trả lời nếu tôi có thể. – Jake

Trả lời

1

Các chủ đề được sử dụng để nuôi một khách hàng JMX từ xa (trong trường hợp của bạn là Java VisualVM) với dữ liệu từ JVM của bạn.

Sau khi bạn ngắt kết nối, các chủ đề sẽ không phân bổ quá nhiều dữ liệu nữa.

Để xác minh điều này, bạn có thể chuyển đến tab Chủ đề và xem xét kết xuất chuỗi của một chuỗi kết nối TCP RMI. Bạn sẽ thấy rằng các hoạt động RMI kích hoạt hạt JMX.

0

RMI là một API Java, cho phép bạn phân chia việc triển khai các phần của cùng một ứng dụng trên nhiều máy tính. Bạn có sử dụng thư viện java.rmi trong dự án của mình không?

+0

Không, tôi đang sử dụng khung lwjgl 3.0 mặc dù. Có thể là họ làm điều đó. Tôi sẽ kiểm tra trên diễn đàn của họ. – Jake

+0

Không thể tìm thấy bất kỳ tham chiếu nào tới RMI trong nguồn của chúng – Jake

+0

Trong google, tôi đã tìm thấy một số thông báo về ngoại lệ rmi khi sử dụng thư viện lwjgl. Rõ ràng, trong khi làm việc với thư viện C bản địa vì một số lý do Java sử dụng kết nối rmi hoặc một cái gì đó như thế. – NetL

Các vấn đề liên quan