2012-09-05 37 views
5

Tôi làm việc trên một dự án mà tôi đang thử nghiệm với python tăng cường. Khi xem xét cách tổ chức giao diện python của tôi, tôi đã chạy vào một số comment xác nhận có các mối quan tâm về hiệu năng với python tăng. Có bất kỳ mối quan tâm thực tế nào với hiệu suất của nó không?Hiệu suất của Boost Python

Trong trường hợp này, tôi đang làm việc với một dự án lớn và chúng tôi muốn phơi bày một số phần mềm đó với python. Tôi thấy rằng python tăng giúp dễ dàng vạch trần các lớp mà tôi đã có. Vì vậy, tôi muốn gắn bó với các phương pháp tăng cường python của các lớp học phơi bày bởi vì nó rất dễ dàng. Trừ khi ai đó có một giải pháp thay thế dễ sử dụng và hiệu suất.

Trả lời

2

Chúng tôi đang sử dụng boost :: python để tích hợp thư viện máy tính lớn vào gói phần mềm có thể cấu hình cao cho các nhà nghiên cứu trong các lĩnh vực khác. Chúng tôi đã không gặp phải những lo ngại cũng như những vấn đề cần phải biết. Tuy nhiên, chúng tôi đã không thực hiện bất kỳ thử nghiệm so sánh nào gần đây.

2

Nếu trường hợp sử dụng của bạn yêu cầu nhiều cuộc gọi qua lại giữa Python và C++ trong vòng lặp chặt chẽ, thì Boost.Python có thể là mối quan tâm về hiệu suất, ít nhất liên quan đến trình bao bọc được sử dụng Python C-API trực tiếp. Sẽ khó hơn nhiều để đoán xem liệu nó có thực sự tồi tệ hơn một cái gì đó tương tự như người dùng thân thiện, giống như SWIG. Tuy nhiên, câu hỏi hiệu suất lớn nhất là liệu bạn có thể tránh được loại chuyển đổi đó hay không - một API có thể tránh vượt qua rào cản C++/Python nhiều lần sẽ thường hoạt động tốt hơn một cái, bất kể thư viện hoặc công cụ bao bọc nào bạn dùng. Thông thường điều đó có nghĩa là chuyển các vòng từ Python sang C++, và tránh các cuộc gọi lại Python và đặc biệt là các chuyển đổi kiểu Python-to-C++ trong vòng lặp đó.