2013-01-24 32 views
10

Tôi đã xây dựng một máy chủ xml-rpc bằng Python sử dụng SimpleXMLRPCServer, theo ví dụ trong tài liệu Python. Tôi đang gọi nó từ một máy khách Python trên cùng một máy. Phần thân của hàm máy chủ thực thi rất nhanh.Xmlrpc của Python cực kỳ chậm: một giây cho mỗi cuộc gọi

Nhưng tôi thấy hiệu suất của máy khách xmlrpc chậm một cách đáng kể, mất một giây cho mỗi cuộc gọi. (Sử dụng xmlrpclib.)

Kỹ thuật tăng tốc tôi tìm thấy trên web (skipping the getfqdn resolution) không giúp ích gì.

tôi kết nối URI là:

'http://localhost:50080' 

Tôi đang chạy Python 2.7 x64 trên Windows 7, nhưng nó hoạt động tương tự cho 32-bit Python 2.7.

Trả lời

17

Sự cố có vẻ như với khách hàng đang giải quyết localhost.

mới (nhanh) kết nối URI:

'http://127.0.0.1:50080' 

Tương tự như vậy, thêm dòng này trong tập tin host% SystemRoot% \ System32 \ drivers \ etc \ hosts có chất tác dụng tương tự:

127.0.0.1 localhost

Một trong những thay đổi này làm tăng tốc độ từ 1 cuộc gọi/giây lên 88 cuộc gọi/giây và bỏ qua độ phân giải getfqdn có thể tăng tốc độ trượt htly hơn. Không phải là công suất cực cao, nhưng có thể chấp nhận được đối với đơn đăng ký của tôi.

Hiệu chỉnh: hiệu suất mới không phải là 88 cuộc gọi/giây, nhưng ~ 1000 cuộc gọi/giây.

+0

Có thể xác nhận. Đã có vấn đề này bằng cách sử dụng máy chủ xmlrpc PyMols và nó đã rất, rất chậm. Tệp máy chủ lưu trữ có dòng '127.0.0.1 localhost' đã nhận xét. Đơn giản chỉ cần bỏ ghi chú nó giải quyết vấn đề. Tuyệt quá! –

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