Tôi đang thử nghiệm một API, được viết bằng Java, dự kiến sẽ giảm thiểu độ trễ trong xử lý các tin nhắn nhận được qua mạng. Để đạt được những mục tiêu này, tôi đang chơi đùa với những người thu gom rác khác nhau có sẵn.Bộ thu gom rác nối tiếp của Java hoạt động tốt hơn nhiều so với các bộ thu gom rác khác?
Tôi đang cố gắng bốn kỹ thuật khác nhau, trong đó sử dụng các cờ sau để kiểm soát thu gom rác thải:
1) Nối tiếp: -XX: + UseSerialGC
2) song song: -XX: + UseParallelOldGC
3) đồng thời: -XX: + UseConcMarkSweepGC
4) đồng thời/gia tăng: -XX: + UseConcMarkSweepGC -XX: + CMSIncrementalMode -XX: + CMSIncrementalPacing
Tôi chạy từng kỹ thuật trong vòng năm giờ. Tôi định kỳ sử dụng danh sách GarbageCollectorMXBean được cung cấp bởi ManagementFactory.getGarbageCollectorMXBeans() để lấy tổng thời gian dành cho việc thu gom rác thải.
Kết quả của tôi? Lưu ý rằng "độ trễ" ở đây là "Lượng thời gian mà ứng dụng của tôi + API đã dành để xử lý từng thư bị ngắt khỏi mạng".
Nối tiếp: 789 sự kiện GC tổng cộng 1309 ms; độ trễ trung bình 47.45, độ trễ trung bình 8.704, thời gian chờ tối đa 1197 chúng tôi
Song song: 1715 Tổng số sự kiện GC tổng cộng 122518 ms; độ trễ trung bình 450,8, độ trễ trung bình 8.448, độ trễ tối đa 8292,
Đồng thời: 4629 tổng số sự kiện GC 116229 ms; độ trễ trung bình 707.2, độ trễ trung bình 9.216, độ trễ tối đa 9151,
Gia tăng: 5066 Tổng số sự kiện GC 200213 ms; độ trễ trung bình 515,9 chúng tôi, độ trễ trung bình 9.472 chúng tôi, độ trễ tối đa 14209 chúng tôi
Tôi thấy những kết quả này không thể xảy ra mà chúng biên giới vô lý. Có ai biết tại sao tôi có thể có những loại kết quả này không?
Ồ, và để lưu nội dung, tôi đang sử dụng Máy chủ Java 64-Bit Java HotSpot (TM).
Bạn có giả định rằng việc thực hiện hai điều song song có nhất thiết phải nhanh hơn so với thực hiện một điều sau cái khác không? – aioobe
Tôi hy vọng độ trễ tối đa sẽ tăng lên mặc dù – jcoder
Vì vậy, có bao nhiêu thư đã thực sự được xử lý trong 5 giờ đó trong các tình huống khác nhau của bạn? Bạn có đang chạy một luồng đơn hay đa luồng không? – pap