Trình điều khiển Java NIO không chặn vẫn chậm hơn luồng chuẩn không đồng bộ cho mỗi ổ cắm không đồng bộ kết nối không?Chủ đề Java cho mỗi mô hình kết nối vs NIO
Ngoài ra, nếu bạn sử dụng các chuỗi cho mỗi kết nối, bạn chỉ cần tạo chủ đề mới hoặc bạn có sử dụng một hồ bơi chủ đề rất lớn không?
Tôi đang viết một máy chủ MMORPG bằng Java có thể mở rộng 10000 khách hàng một cách dễ dàng với phần cứng đủ mạnh, mặc dù số lượng khách hàng tối đa là 24000 (mà tôi tin là không thể giới hạn chuỗi 15000 trong Java). Từ bài viết ba năm tuổi, tôi nghe nói rằng việc chặn IO với mô hình kết nối cho mỗi mô hình kết nối vẫn nhanh hơn 25% so với NIO (cụ thể là tài liệu này http://www.mailinator.com/tymaPaulMultithreaded.pdf), nhưng vẫn có thể đạt được như vậy vào ngày này? Java đã thay đổi rất nhiều kể từ đó, và tôi đã nghe nói rằng các kết quả có vấn đề khi so sánh các kịch bản thực tế đời sống vì VM được sử dụng không phải là Sun Java. Ngoài ra, bởi vì nó là một máy chủ MMORPG với nhiều người dùng đồng thời tương tác với nhau, việc sử dụng đồng bộ hóa và thực hành an toàn luồng có làm giảm hiệu suất đến điểm mà bộ chọn NIO luồng duy nhất phục vụ 10000 máy khách sẽ nhanh hơn không? (tất cả công việc không cần thiết phải được xử lý trên luồng với bộ chọn, nó có thể được xử lý trên các chuỗi công nhân như cách hoạt động của MINA/Netty).
Cảm ơn!
10k chủ đề không phải là một chiến thắng cho bất kỳ (* hàng hóa *) máy chủ :-) Ngoài ra, 10k khách hàng hoạt động trên một hộp duy nhất là rất ... không. –
@pst: nếu theo hàng hóa bạn có ý nghĩa; không lượng tử, chưa được phát hiện ra loại công nghệ, tôi hoàn toàn đồng ý. Tôi nghĩ rằng ít nhất của vấn đề của Kevin là số lượng chủ đề. Tôi xin lỗi vì không có bất kỳ thông tin hữu ích nào về vấn đề này. Cũng nhớ QOTD: Kiểm tra. –
@pst Oh JRE ngọt ngào đàn hồi của nó! Bạn chỉ cần làm cho ngày của tôi đáng giá. –