2011-08-25 80 views
6

Tôi hiện đang nghiên cứu bất kỳ cách nào để thu thập một số số liệu phân tích/số liệu về hiệu suất của máy khách cho ứng dụng web của chúng tôi. Các ứng dụng là rất nhiều ajax và chúng tôi hy vọng sẽ thu thập một số số liệu thống kê về cách tốt các máy khách đang chạy nó.Đo lường hiệu suất của khách hàng

Chúng tôi không nhất thiết muốn đặt mã theo dõi hiệu suất tất cả thông qua ứng dụng (vì một số lượng lớn các lý do này có thể không khả thi). Thay vào đó, chúng tôi muốn có thể chạy một số loại thử nghiệm hoặc một cái gì đó khi người dùng gửi phản hồi có thể cho chúng tôi ý tưởng về trình duyệt/máy tính hoạt động tốt như thế nào.

Đây là một điều khá khó khăn để nghiên cứu vì nó tiếp tục đưa ra các cuộc thảo luận về hồ sơ vv Điều này rõ ràng là hữu ích nhưng chỉ đến một điểm như các máy phát triển của chúng tôi là cực kỳ áp đảo. Chúng tôi hy vọng sẽ nhận được một số số liệu về các loại máy khách hàng của chúng tôi đang kết nối với.

Có bất kỳ loại thư viện/khung hoặc thực tiễn tốt nhất nào tồn tại cho điều này không? Cho đến nay, tốt nhất của tôi là chạy một số loại quy trình chuyên sâu CPU thông qua JS trong vài giây và đo hiệu suất theo cách đó ...

Suy nghĩ hoặc đề xuất? Có thể là một cuộc thảo luận thú vị.

+1

Không đủ để trả lời: Chúng tôi tạo vm cho mục đích này. Giới hạn nó đến 1 cpu và 512mb và 'phiên bản trình duyệt crappy mà khách hàng vẫn có vẻ sử dụng' Sau đó, chỉ cần có được một cảm giác như thế nào nó phản ứng. Thật dễ dàng để thiết lập và tôi nghĩ bạn nên buộc các nhà phát triển thường xuyên xem xét công việc của họ từ quan điểm người dùng cuối đó. – Eddy

+0

@Eddy: đừng quên băng thông giống như dial-up – drlemon

+0

Bạn không chắc chắn nó sẽ hoạt động như thế nào (nếu có) trong máy ảo, nhưng tôi đã có may mắn với dummynet (http: //info.iet.unipi. nó/~ luigi/dummynet /) để điều chỉnh kết nối mạng khi thực hiện kiểm tra máy khách. – AngerClown

Trả lời

0

Đây là một câu hỏi thú vị khi bạn đưa lên hầu hết hồ sơ nhà phát triển trên máy của họ. Tôi không chắc chắn nếu có bất kỳ cách nào khác hơn là đặt profiler hiệu suất trong mã của bạn. Phần thú vị mà bạn đã đưa ra là điều này dựa trên phản hồi của người dùng và không nhất thiết phải được gửi tất cả thời gian tới máy chủ.

Chúng ta có thể phát triển một Profiler lớp javascript rằng về cơ bản thu thập:

  • tên Chức năng
  • mạng thời gian khứ hồi
  • Tổng thực hiện chức năng thời gian
  • UserMachineProcessingTime = Tổng chức năng thực hiện thời gian mạng khứ hồi
  • Thông tin hữu ích khác (tương tự như những gì YSlow hoặc các công cụ tương tự cung cấp)

Khi bạn đề cập rằng dựa trên phản hồi của người dùng, chúng tôi không cần gửi thông tin này mọi lúc vì mỗi chức năng được gọi (điều này làm cho ứng dụng trở nên rất trò chuyện). Sau đó chúng tôi tổng hợp thông tin này ở phía khách hàng và có thể lưu trữ thông tin đó ở đâu đó (có thể sử dụng bộ nhớ cục bộ HTML5?)

Chỉ khi người dùng đồng ý gửi hồ sơ hiệu suất, chúng tôi gửi thông tin này đến máy chủ nơi bạn nhận được các dữ liệu cần thiết. Nó sẽ rất thú vị để xem phản ứng của người dùng như thế nào nếu chúng tôi thấy một thông điệp nhỏ nhắn nói rằng "Chúng tôi nhận thấy rằng hiệu suất của bạn thấp hơn hiệu suất của người dùng trung bình. Bạn có muốn gửi hồ sơ hiệu suất của mình để chúng tôi có thể tìm hiểu và cải thiện không?" (Nói cách khác nhau cần thiết, tôi xấu với điều này, nhưng đó là cơ bản tin nhắn). Khi nói có, Hồ sơ gửi thông tin tổng hợp mà nó đã thu thập + thông tin bổ sung mà Javascript có thể thu thập (tác nhân người dùng, v.v.). Tất nhiên, câu hỏi là có bao nhiêu người dùng sẽ chọn gửi thông tin tiểu sử của họ, nhưng đó là một cách tiếp cận mà chúng tôi có thể thử.

+0

Yea nó là một cuộc thảo luận thú vị. Đáng buồn thay, chúng tôi không thể sử dụng nhiều mã với hồ sơ vì nó chủ yếu là một gói được mua trước mà chúng tôi đã tùy chỉnh. Ngoài ra tôi hơi lo lắng rằng việc chạy hồ sơ liên tục có thể làm giảm hiệu suất, đặc biệt là trong những trường hợp mà chúng tôi thực sự quan tâm: những người có máy tính khủng khiếp. Tôi hy vọng sẽ đưa ra một loại thử nghiệm tương đối ngắn có thể chạy ở chế độ nền trong khi ở phần 'phản hồi' có thể có ý tưởng cơ bản về hiệu suất của khách hàng. – rat

2

dưới đây là những gì chúng tôi thực hiện để theo dõi và phân tích dữ liệu sử dụng của khách hàng ...

  • sử dụng Google Analytics để nắm bắt thông tin về người dùng (nền tảng, trình duyệt, tốc độ kết nối, trang web sử dụng, vv)

  • sử dụng Google Webmaster Tools để có được số liệu thống kê trang web bổ sung và gợi ý tối ưu hóa

  • sử dụng Pagespeed Plugin để phân tích/tinh chỉnh âm lượng cao và/hoặc trang chậm

  • sử dụng Apache AB hoặc JMeter - để chạy các thử nghiệm tải cơ bản đối với các trang có khối lượng cao

+0

Một công cụ hữu ích khác: Fiddler (http://www.fiddler2.com/fiddler2/) với addon hiệu suất neXpert (http://www.fiddler2.com/fiddler2/addons/neXpert.asp). –

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