2014-09-03 16 views
9

tôi đã xây dựng một AngularJS ứng dụng lớn mà thực hiện tốt trên cho đến bây giờ.
Vấn đề của tôi bắt đầu khi một số người dùng (với các máy tính rất cũ mà có một CPU) phàn nàn về việc áp dụng là vô cùng chậm.AngularJS CPU + Single Core = Hầu như 100% CPU

tôi đã mở Task Manager và tôi có thể thấy rằng các tab là trên 70% - 100% CPU luôn (Khi sử dụng một CPU lõi đơn). Bây giờ vì điều này hoạt động tốt trên các máy tính mạnh hơn, tôi không chắc rằng mình có vấn đề về hiệu suất và nếu có, tôi thực sự không biết cách kiểm tra điều này (Tôi không thể kiểm tra điều này bằng các công cụ hiệu suất trên chrome).

Có cách nào để xử lý việc này không? Để cho biết Angular để thực hiện các chu kỳ thông báo của nó ít hơn lần?
Có ai gặp phải sự cố tương tự không? Mọi mẹo sẽ rất tuyệt vời đối với tôi.

+0

Có lẽ điều này sẽ giúp? https://github.com/angular/angular.js/issues/1534 – c97

+0

Cảm ơn câu trả lời của bạn. Vấn đề là với CPU đơn chứ không phải là IE8. Tôi sẽ chỉnh sửa câu hỏi của mình để rõ ràng hơn. –

Trả lời

5

Tôi chưa bao giờ thấy cách để giảm số lần chu kỳ được gọi là.

Tuy nhiên có một số cách để cải thiện hiệu suất của ứng dụng của bạn.

Trước tiên, để có một ý tưởng về hiệu suất từ ​​máy tính của bạn, bạn có thể cài đặt Batarang mà cung cấp một tab để phân tích hiệu suất.

Khi bạn có điều này bạn có thể tập trung vào những điều sau đây:

  1. Vô hiệu hoá các quan sát đó sẽ không được sử dụng nữa
  2. Tránh ng-repeat nếu có thể và/hoặc sử dụng các chỉ thị bindonce
  3. Sử dụng phân trang để có tập dữ liệu nhỏ hơn

Để biết thêm chi tiết, bạn có thể tham khảo các bài viết sau:

+0

+1 - Cảm ơn câu trả lời của bạn. Tôi không thực sự muốn thắt lưng thời gian của tôi về sửa chữa vấn đề hiệu suất kể từ trên máy tính với CPU tiêu chuẩn của tôi không có vấn đề. Ứng dụng của tôi đã thực hiện những điều bạn đề xuất nhưng có vẻ như các tiêu hóa của góc sử dụng rất nhiều trên CPU (ví dụ: khi tôi di chuyển con trỏ chuột dễ dàng thấy nhiều). –

+1

Bạn có ví dụ về các vấn đề với những máy tính lõi đơn? Giống như vấn đề với di chuyển chuột của bạn rất nhiều? –