2010-12-28 22 views
9

Tôi vừa hoàn thành những gì tôi sẽ gọi một dự án django nhỏ và khá sớm nó sẽ hoạt động. Nó chỉ có 6 mô hình nhưng một lớp xem khá phức tạp và rất nhiều bản ghi lưu và truy xuất.Dự án Django đã hoàn thành và đang hoạt động. Giờ thì sao?

Tất nhiên, hãy quên số lượng lỗi rất lớn, có thể, điền vào hộp thư đến của tôi ở đầu trang, bước tiếp theo sẽ hướng tới trang web có hiệu suất tốt nhất. Điều gì có thể được tinh chỉnh?

Tôi đang sử dụng jmeter rất nhiều gần đây và cảm thấy tự tin rằng tôi có cơ sở tốt để so sánh hiệu suất trong tương lai, nhưng điều này là: Tôi không chắc chắn là khởi đầu tốt nhất, vì tôi là một tên khốn tham lam muốn làm việc ít nhất có thể và thu thập kết quả tốt nhất. Ví dụ: tôi có nên thử phương pháp tiếp cận cơ sở hạ tầng, như cơ sở dữ liệu được phân phối hay tôi nên đi với chính mã đó và trong trường hợp đó, có điều gì đó mang lại kết quả cụ thể trong hiệu suất tốt hơn không? Không, tôi có nên sử dụng mã nguồn mở không? Không. Theo kinh nghiệm của bạn, whats trả tiền nhiều hơn?

Là đóng góp cá nhân: Đôi khi tôi có ấn tượng rằng một số hoạt động, khi được thực hiện thông qua tín hiệu của django, nhanh hơn cách xem thông thường. Nhưng hey, tôi thiên vị. Tôi freaking tín hiệu loooove. :)

Giai thoại cá nhân như tôi, được hoan nghênh như một cách để kích thích một số nghiên cứu, nhưng một số ý kiến ​​dựa trên thực tế được đánh giá cao hơn nhiều. :)

Cảm ơn rất nhiều.

Trả lời

9

đây là những gì chúng tôi đã làm ...

  1. sử dụng django-debug-toolbar để phân tích hiệu suất của mỗi trang (# truy vấn và thời gian đáp ứng)
  2. sử dụng Django cache framework ... quan trọng nhất là memcache
  3. sử dụng Firebug Số trang cần có để tối ưu hóa tải trang HTTP
  4. sử dụng Google Analytics cho thống kê sử dụng trang web chung (tìm hiểu những gì đang được sử dụng)
  5. sử dụng d Apache HTTP server benchmarking tool để có thống kê hiệu suất nhanh

Nói chung, đừng cố gắng tối ưu hóa hiệu suất ở phía trước. Đầu tiên, thu thập số liệu thống kê sử dụng/hiệu suất, sau đó chọn ra những thay đổi bổ ích nhất (nỗ lực so với lợi ích) cho đến khi bạn nhận được kết quả tốt. Mục tiêu nên tránh sự phức tạp không cần thiết (cơ sở dữ liệu phân tán, vv)

Sau đó, nếu bạn không hài lòng, hãy xem xét (theo thứ tự): RAM (đi một chặng đường dài), máy chủ cơ sở dữ liệu chuyên dụng, tải cân bằng nhiều máy chủ ứng dụng (sử dụng perlbal, vv), một máy chủ phương tiện truyền thông chuyên dụng, vv ... thấy những để biết thêm chi tiết (deployment guide, performance tips)

chúc may mắn ...

+1

Câu trả lời rất toàn diện và hữu ích. Cảm ơn. –

+0

django-thanh công cụ là một tìm thấy! Cảm ơn – Rodrogo

3

Bây giờ những gì?

Triển khai. Nếu bạn có một số MVP.

suy nghĩ khác:

  1. Bạn đã không đề cập đến bất cứ điều gì về thử nghiệm.Bạn có xét nghiệm đơn vị không? Bạn có cảm thấy rằng phạm vi kiểm tra là đủ? Tôi khuyên bạn nên đọc cuốn sách của Karen M. Tracey Django 1.1 Testing and Debugging.
  2. Bạn đã xem Jacob Kaplan-Moss's Deployment Workshop chưa?
  3. Bạn đã thực hiện bất kỳ thử nghiệm khả năng sử dụng nào chưa? Bạn có thể xem bài viết Joel Test của Joel Spolsky hoặc bạn có thể đọc Rocket Surgery Made Easy hoặc Don't Make Me Think cả hai bởi Steve Krug.
  4. Nói về Spolsky, quy trình của bạn xếp hạng như thế nào trên Joel Test?

Tôi biết rằng câu hỏi của bạn bị nghiêng về hiệu suất và có vẻ như suy nghĩ của tôi không liên quan đến hiệu suất. Tuy nhiên, suy nghĩ về một số các mục dường như không liên quan này có thể dẫn bạn theo một hướng sẽ tác động đến hiệu suất. Ví dụ, kiểm tra khả năng sử dụng có thể tiết lộ rằng một tính năng nhất định có thể được giảm trong phạm vi năng suất hiệu suất tốt hơn do ít dữ liệu được phân phối cho người dùng cuối.

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