2011-06-27 28 views
6

Khi Html5 bắt đầu tăng lên, chúng tôi đang thấy nhiều thử nghiệm hơn với các yếu tố như phần tử video hoặc canvas.Có thể đánh giá hệ thống của người dùng bằng javascript trong trình duyệt

Khi thực hiện thí nghiệm với canvas ví dụ như bắn pháo hoa với hạt, 1000 hạt có thể hoạt động tốt trên máy hiện đại nhưng có thể rất chậm trên máy 3yr.

Có cách nào để đánh giá hệ thống người dùng để tự động thay đổi thử nghiệm canvas (hoặc bất kỳ thứ gì) để tối ưu hóa thử nghiệm cho người dùng cụ thể cho biết.

EDIT: Điều này có thể có thể là giải pháp tốt nhất: http://benchmarkjs.com/

+0

Bạn khiến tôi nghĩ về điều này: http://clients.futuremark.com/peacekeeper/ – thirtydot

Trả lời

8

Đo thời gian cần để hiển thị một vài khung hình của bất kỳ điều gì bạn đang làm và điều chỉnh mức độ chi tiết cho phù hợp. Nếu bạn không nhớ các chi tiết thay đổi khi đang bay, bạn có thể sử dụng đo liên tục.

Điều bạn không muốn làm là làm cho người dùng của bạn ngồi qua điểm chuẩn năm phút trước khi họ có thể làm bất cứ điều gì với bạn.

+0

@Matti Virkkunen Ý tưởng này dường như là tốt nhất. Tôi ngạc nhiên rằng nó không được sử dụng thường xuyên hơn. 10 khung hình nên là đủ hoặc bạn sẽ nghĩ nhiều hơn là cần thiết? – Sycren

+0

Bạn nghĩ điều gì sẽ là một điểm chuẩn tốt? Số nguyên tố dưới 100? – Sycren

+0

@Sycren: Tôi chỉ chạy điều thực tế và điều chỉnh mọi thứ nếu nó có vẻ chạy quá chậm. –

2

Futuremark Peacekeeper Benchmark khá nhiều thực hiện điều này rồi. Tôi nghĩ rằng nó kiểm tra một vài thứ khác nữa, nhưng nó cũng làm cho việc đo điểm chuẩn của vải nặng.

Tôi giả sử bạn có thể đưa ra một số loại điểm chuẩn đo tốc độ khung hình trên canvas cho người dùng và sau đó điều chỉnh chi tiết dựa trên đó. Điều này có thể được thực hiện bằng cách đặt khoảng thời gian ngắn và hiển thị mọi thứ trên canvas, sau đó sử dụng đối tượng Date trên mỗi lần lặp đến thời gian cần và tính tốc độ khung hình trung bình dựa trên đó.

2

EDIT: Rất tiếc ... đọc câu hỏi quá nhanh. Câu trả lời của tôi không thực sự áp dụng.


Tùy thuộc vào mức độ chính xác mà bạn muốn.

Nếu bạn không muốn một cái gì đó siêu chính xác, nó có thể có thể với một chút công việc.

Cách tôi xem; một trong những vấn đề lớn nhất của bạn sẽ có tính đến các công cụ JS khác nhau trong các trình duyệt khác nhau và đo tất cả mọi người theo trình duyệt cụ thể và cơ sở của trình duyệt cụ thể.

Ví dụ: thử chạy mọi thử nghiệm SunSpider trên IE 5.5 sau đó trên Google Chrome trên cùng một máy ... sự khác biệt tuyệt vời. Bạn sẽ phải tính đến điều đó. http://www.webkit.org/perf/sunspider/sunspider.html

Lý tưởng nhất, bạn cũng muốn tương quan điểm giữa các trình duyệt khác nhau (ví dụ: thử nghiệm này chạy trong x ms trên máy A trong IE 6 và trong y ms trên cùng một máy trong IE 8, vì vậy tôi có thể tương quan IE6 điểm với điểm số IE 8 bằng cách sử dụng các yếu tố trung bình khác nhau). Có thể khó có đủ kích thước mẫu dữ liệu đủ lớn để thực hiện công việc hiệu quả.

+0

Tôi không nghĩ anh ấy muốn "điểm" cho * máy tính * (không cần so sánh các trình duyệt khác nhau).Điều duy nhất quan trọng là hiệu suất của * môi trường trình duyệt hiện tại *. – thirtydot

+0

@thirtydot - đúng vậy. Đó là những gì tôi nhận được để lướt. – Steve

2

Nên khá đơn giản. Chỉ cần giữ một khung truy cập và thời gian trôi qua trong bất kỳ chức năng cập nhật vải của bạn và chia trước đây để có được FPS. Bạn có thể giảm số lượng hạt/mẫu/v.v. tự động dựa trên FPS. Vì vậy, về cơ bản - có, nhưng nó hoàn toàn tùy chỉnh.

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