2016-04-03 17 views
13

Trong ứng dụng web tải lượng lớn dữ liệu bị treo khi vượt quá giới hạn nhất định. Vì vậy, tôi muốn tìm bộ nhớ được sử dụng bởi một tab chrome sử dụng javascript tức là bằng mã để ngăn chặn loại vấn đề này.Cách tìm bộ nhớ được tab chrome sử dụng bằng cách sử dụng javascript

+0

_ "Trong ứng dụng web tải lượng lớn dữ liệu bị treo khi vượt quá giới hạn nhất định" _ Dữ liệu được tải vào tài liệu như thế nào? – guest271314

+0

@ guest271314 Chúng tôi đang tìm nạp dữ liệu trực tiếp từ các nguồn khác nhau phía sau màn hình..Thông qua javascript/ajax – SHANib

+0

Có, tại sao tab trình duyệt bị lỗi? Yêu cầu ajax có nằm trong vòng lặp không? – guest271314

Trả lời

5

Gần đây, chúng tôi đã gặp phải sự cố tương tự.
Bạn có thể sử dụng API hiệu suất web để kiểm tra phân bổ bộ nhớ hiện tại.
window.performance

Nó cho phép các trang web truy cập vào một số chức năng nhất định để đo hiệu suất của trang web. Có một tiện ích mở rộng không chuẩn chỉ có sẵn cho chrome để ghi lại thông tin bộ nhớ.

window.performance.memory

Nó sẽ trả lại thông tin sau cho bạn.

  • usedJsHeapSize: tổng dung lượng bộ nhớ được sử dụng bởi các đối tượng JS bao gồm V8 đối tượng nội bộ,
  • totalJsHeapSize: kích thước hiện tại của heap JS bao gồm cả không gian trống không chiếm đóng bất kỳ JS đối tượng

Ngoài ra còn có một thư viện js có sẵn để ghi lại số liệu thống kê bộ nhớ. (https://github.com/spite/memory-stats.js)

Vui lòng kiểm tra điều này. Nó có thể giúp bạn. - https://developer.chrome.com/devtools/docs/javascript-memory-profiling

+0

Cảm ơn câu trả lời ... tôi đã thử window.performance.memory nhưng giá trị của nó không thay đổi động .. Có điều gì để làm .. – SHANib

+0

@SHANib: Chỉ cần cố gắng hiểu vấn đề chính xác. Ứng dụng web của bạn có bị lỗi khi tải trang không? Nếu có thì bạn nên xem số đối tượng (bao gồm cả loại) mà bạn đang tạo khi tải trang. Nếu không thì bạn nên cố gắng ghi lại phân bổ bộ nhớ heap bằng cách sử dụng window.performance.memory tại mỗi & mọi bước cho đến khi nó bị treo. Điều này sẽ cung cấp cho bạn hình ảnh tốt hơn về phân bổ bộ nhớ js của bạn. – biker

+0

Ứng dụng của tôi không bị lỗi khi tải trang. Nhiều hoạt động/hành động đang hoạt động trong trang đó và điều đó gây ra sự cố. Vì vậy, tôi muốn kiểm tra xem trình duyệt có đạt được dung lượng định kỳ hay không và cần thông báo cho người dùng. t không phải để gỡ lỗi mà là cảnh báo cho người dùng – SHANib

8

đây từ source code of the chrome:

// Tạo các giá trị trở lại window.performance.memory chi tiết hơn và nhiều hơn nữa đến nay trong công nhân chia sẻ. Nếu không có cờ này, thông tin bộ nhớ vẫn có sẵn, nhưng nó được nhóm và cập nhật ít thường xuyên hơn. Lá cờ này cũng áp dụng cho người lao động. const char kEnablePreciseMemoryInfo [] = "cho phép-chính xác-bộ nhớ-thông tin";

Vì vậy, bạn cần cờ --enable-precise-memory-info để có được kết quả năng động và chính xác hơn. Vì lý do bảo mật, Google Chrome không cung cấp thông tin chính xác qua performance.memory theo mặc định. Bạn có thể xem tại đây https://github.com/paulirish/memory-stats.js/tree/master một cách hay để theo dõi bộ nhớ. Nhưng đây không phải là giải pháp tốt ngay cả khi bạn có quyền kiểm soát cách người dùng chạy "trang web". Bạn không thể chắc chắn Chrome sẽ gặp sự cố hoặc dữ liệu ở đâu chính xác.

Giải pháp đầu tiên là tạo số factory pattern toàn cầu tính tổng số đối tượng mới và có kích thước được xác định trước cho mỗi kích thước và khi kích thước đạt đến một số nhất định bạn có thể cảnh báo cho người dùng. Hãy cẩn thận theo cách đó bạn không tính các sự kiện bị ràng buộc. Bạn có thể thử và thêm các sự kiện trong cùng một nhà máy (hoặc một nhà máy khác) nhưng tôi không biết chính xác điều này sẽ như thế nào.

Giải pháp thứ hai và giải pháp tốt hơn là this example. Một ví dụ tuyệt vời, với 500.000 bản ghi có phản hồi nhanh và bộ nhớ thấp. Làm sao? Dễ dàng, chỉ cần tải dữ liệu mà người dùng nhìn thấy và không có gì khác. Khi người dùng cuộn nó tìm thấy dữ liệu phù hợp mà không tải tất cả các phần còn lại. Đó là một cái gì đó bạn có thể làm với một cái gì đó mà mất nhiều bộ nhớ.

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