Trong khi thử nghiệm một máy chủ đa hướng UDP mà tôi đã viết trên Windows 7 Ultimate x64, tôi đã xem xét một điều tò mò nhất. Chơi nhạc với foobar2000 ở chế độ nền đáng kể cải thiện tốc độ truyền của máy chủ mà còn bị mất gói nhỏ. Tắt nhạc ngay lập tức giảm tốc độ truyền xuống dưới mức chấp nhận được nhưng cũng làm mất 0 gói dữ liệu. (Tôi có một ứng dụng máy khách nói chuyện với máy chủ và báo cáo lại các gói chưa được trả lời)Thực tiễn tốt nhất về các ứng dụng mạng hiệu suất cao
Tôi biết hành vi điều chỉnh của Vista để làm cho các ứng dụng truyền thông và mạng hoạt động tốt với nhau, nhưng tôi chắc chắn không mong đợi âm nhạc sẽ cải thiện hiệu suất mạng, và cũng không làm giảm hiệu năng mạng xuống cấp đáng kể.
Tôi có thể làm gì về điều này từ quan điểm mã trong ứng dụng máy chủ của tôi để nó thực hiện nhất quán cho dù phát nhạc hay không trên Vista trở lên? Tôi chắc chắn muốn tránh phải thông báo cho tất cả khách hàng về cách chỉnh sửa đăng ký của họ để có được tốc độ truyền có thể chấp nhận được và cũng muốn tránh họ chỉ đơn giản là "phát nhạc" để có được tốc độ truyền được chấp nhận. Ứng dụng nên "chỉ hoạt động" theo ý kiến của tôi. Tôi nghĩ rằng giải pháp liên quan đến một thứ gì đó dọc theo các dòng ưu tiên của quá trình, MMCSS, hoặc có thể là một số lệnh gọi API Windows tối nghĩa khác để làm cho nó hoạt động đúng đắn (TM) tại đây.
Ngoài ra, xin lỗi nhưng tạo trường hợp thử nghiệm có thể tái sản xuất là số lượng công việc không nhỏ. Các hành vi throttling xảy ra chỉ khi trình điều khiển cho NIC vật lý đang tích cực làm việc và không thể được sao chép bằng cách sử dụng giao diện loopback. Người ta sẽ cần cài đặt máy khách, triển khai máy chủ và phần cứng mạng vật lý để kiểm tra.
khi bạn nói 'đang phát nhạc', bạn có nghĩa là đang phát nhạc HD của bạn và sử dụng soundcard không? Hoặc là nó phát trực tuyến qua cùng một card mạng? – Toad
@reinier: Có, foobar2000 đang từ từ tải dữ liệu ra khỏi HD và phát trực tiếp âm thanh sang giao diện âm thanh bên ngoài của tôi qua USB 2.0. –