2011-07-24 35 views
10

Tôi là một người mới trong thế giới Python và GAE và tôi có một câu hỏi. Với Python, cách tiếp cận bình thường là chỉ tối ưu hóa mã khi cần thiết, sửa chữa các tắc nghẽn khẩn cấp hơn. Và một trong những cách để đạt được điều đó là bằng cách viết lại các phần quan trọng nhất của chương trình trong C.Trộn python với ngôn ngữ tối ưu để tối ưu hóa trong GAE

Bằng cách sử dụng GAE, chúng ta có bị mất khả năng này mãi mãi không? Kể từ khi Google's Go language bây giờ là (hoặc nó sẽ được ngay sau khi được biên dịch hiệu quả hơn) ngôn ngữ nhanh nhất trong GAE, sẽ có cách trộn Python và Go trong cùng một ứng dụng không? Những cách nào khác có thể được sử dụng để đạt được kết quả tương tự?

Trả lời

9

Xem Can I write parts of the Google App Engine code in Java, other parts in Python? để biết cách sử dụng nhiều ngôn ngữ.

Về cơ bản, mỗi phiên bản của một ứng dụng nhất định chỉ có thể sử dụng một ngôn ngữ thời gian chạy.

Nhưng, bạn có thể có hai phiên bản ứng dụng khác nhau, được viết bằng các ngôn ngữ khác nhau và có thể chuyển thông tin qua lại thông qua kho dữ liệu.

Ngoài ra, bạn có thể có hai ứng dụng khác nhau, bằng hai ngôn ngữ khác nhau và sau đó bạn có thể chuyển thông tin qua lại qua các yêu cầu.

+1

Hãy cẩn thận với hai ứng dụng App Engine khác nhau, vì thỏa thuận sẽ xuất hiện để cấm (có khả năng ngăn người khác cố gắng tránh hạn ngạch). – Kitsune

5

Tôi nghĩ bạn đang giảm tối ưu hóa sớm ở đây. Đối với gần như tất cả các ứng dụng web, phần lớn thời gian dành cho RPC, chờ phần còn lại của hệ thống thực hiện một số thứ như truy vấn kho dữ liệu quy trình. Trong số còn lại, một phần đáng kể thường được sử dụng trong mã C. Có rất ít ứng dụng web cần phải thực hiện nhiều công việc xử lý chuyên sâu để phục vụ truy vấn thông thường.

Nếu ứng dụng của bạn là một trong số đó, bạn có thể cân nhắc viết lại toàn bộ ứng dụng bằng Python, do không có sẵn các phần mở rộng C trên App Engine và chọn Java hoặc Go. Nếu ứng dụng của bạn là một trong 99% rằng không cần phải thực hiện nhiều công việc xử lý chuyên sâu cho các yêu cầu thông thường, đừng lo lắng về điều đó.