2010-02-17 5 views
8

Tôi thường thấy các đối số giữa Cổ điển (giả mạo qua một số thư viện), Pseudo-Classical và Prototypal Inheritance đề cập đến "hiệu quả". Tuy nhiên, tôi chưa bao giờ thấy bất kỳ dữ liệu nào ủng hộ bất kỳ loại công cụ nào như thế này. Chưa kể "hiệu quả" có vẻ như là một từ không rõ ràng khi nói đến một kiểu mã hóa, chứ không phải là một thuật toán.Một cách khách quan để đánh giá bộ nhớ/tốc độ của các mẫu Thừa kế khác nhau trong JavaScript?

Tôi muốn thực hiện một số thử nghiệm để "chuẩn" một số mẫu và thư viện này. Điều này có vẻ khác biệt rõ rệt so với hầu hết các thuật toán hoặc điểm chuẩn hiển thị mà tôi đã thấy trong quá khứ. Các bạn nghĩ gì về những điều quan trọng cần kiểm tra, và cách tốt nhất để có được những con số đó một cách đáng tin cậy là gì.

gì tôi đang suy nghĩ:

  • Tốc độ instantiation (Thời gian việc tạo ra một vài ngàn đối tượng sử dụng mỗi mẫu w/giống hệt chức năng)
  • Sử dụng bộ nhớ (Cách duy nhất tôi có thể hãy nghĩ xem bộ nhớ của tôi trong trình quản lý tác vụ ... có cách nào tốt hơn )
  • Tốc độ truy cập vào các thuộc tính và phương thức nội bộ (lặp lại thời gian lại)
  • Tốc độ của bản (thời gian lặp)
  • dòng mã (Peer xem xét thực hành tốt nhất ví dụ sau đây với một số )

Bất kỳ sai lầm, bổ sung, hoặc phản đối? Bất cứ ai nhìn thấy dữ liệu này ở nơi khác?

Cảm ơn!

+0

Có cách nào để chia tiền thưởng cho nhiều người không? –

Trả lời

2

Có một số thử nghiệm và số được liên kết từ this blog post.

Cũng đảm bảo đọc số this article của John Resig về độ chính xác của thời gian JavaScript và cách nó ảnh hưởng đến điểm chuẩn hiệu suất. Nếu bạn không sử dụng JSLitmus như Residuum được đề xuất, hãy đảm bảo vẫn sử dụng các chu kỳ kiểm tra thích ứng.

Mặc dù tôi đồng ý 100% với nhận xét của darelf rằng bạn nên kiểm tra nhiều trình duyệt, bạn có thể xem chi tiết về cách sử dụng bộ nhớ và cpu trong Chrome bằng cách nhấn Shift + Esc.

+0

Cũng là một bài đọc rất hay với thông tin và bài kiểm tra tốt. Cảm ơn rất nhiều! –

+0

Tôi nghĩ mọi người đã làm một công việc khá tuyệt vời khi trả lời câu hỏi này, nhưng bạn đã loại bỏ cả hai mặt của câu hỏi khá tốt. Vì vậy, tiền thưởng ho. Xin lỗi cho người khác. Cảm ơn một tấn. –

1

Điều này nghe có vẻ hiển nhiên: Bạn sẽ cần ghi nhớ rằng mỗi trình duyệt sẽ cho kết quả khác nhau. Nó phải là một phần của ma trận bạn tạo ra trong thử nghiệm của bạn. Chúc may mắn.

+0

Tuyệt đối, tôi có thể sẽ kiểm tra cùng một danh sách mà hầu hết các thư viện yêu cầu hỗ trợ. Cảm ơn cho đầu vào, tất nhiên, mặc dù. –

1

Tôi chưa tự mình sử dụng, nhưng JSLitmus giống như công cụ phù hợp cho công việc. Here is a benchmark của các phương thức thừa kế khác nhau bằng cách sử dụng JSLitmus.

Nếu bạn kiểm tra các dòng mã và kích thước thực sự quan trọng đối với điểm chuẩn của bạn (và kích thước tệp javascript không quan trọng), thì bạn cũng nên kiểm tra kích thước tệp javascript được rút gọn bằng cách sử dụng YUI Coompressor.

Đối với tiêu chí sử dụng bộ nhớ, tôi không có ý tưởng nào khác ngoài việc xem trình quản lý tác vụ hoặc trên hệ thống Linux hoặc tương đương trong Mac OS X (và bạn cũng nên kiểm tra).

Ngoài ra: Chúc may mắn và vui lòng tiết lộ thông tin được truy lục bởi điểm chuẩn của bạn. Và đừng quên bao gồm các phương pháp thử nghiệm để tái tạo các giá trị, để bất kỳ lập trình viên quan tâm nào khác có thể ngang hàng xem xét kết quả của bạn.

+0

Tuyệt vời! Đây là một câu trả lời rất hữu ích! –

1

Bạn không chắc chắn liệu điều này có giúp ích hay không nhưng hãy kiểm tra dyna trace thực hiện một số công việc tốt để cung cấp số.

+0

Vâng, điều này chắc chắn sẽ giúp về mặt bộ nhớ của sự vật. Cảm ơn. –