2010-03-08 25 views
10

Nhóm của chúng tôi đang gặp phải tình trạng rò rỉ bộ nhớ Javascript chậm nhưng nghiêm trọng. Chúng tôi đã đọc về các nguyên nhân bình thường cho rò rỉ bộ nhớ trong Javascript (ví dụ: đóng cửa và tham chiếu vòng tròn).Một số công cụ phát hiện bộ nhớ Javascript tốt nhất là gì?

Chúng tôi đã cố gắng tránh những cạm bẫy đó trong mã nhưng có thể chúng tôi vẫn còn những lỗi không xác định.

Tôi bắt đầu tìm kiếm các công cụ có sẵn nhưng muốn đầu vào từ những người có trải nghiệm thực tế với các công cụ này.

Một số trong những công cụ tôi thấy cho đến nay (nhưng không có ý tưởng như thế nào tốt và hữu ích họ sẽ cho vấn đề của chúng tôi):

Tìm kiếm của chúng tôi không giới hạn các công cụ miễn phí, nó sẽ là một phần thưởng, nhưng quan trọng hơn là một cái gì đó sẽ có được công việc làm.

Chúng tôi làm như sau trong mã Javascript của chúng tôi:

  • AJAX cuộc gọi đến một NET WCF back-end mà gửi lại dữ liệu JSON
  • Thao tác DOM
  • Giữ một mô hình đối tượng khá nhỏ ở Javascript để lưu trữ trạng thái hiện tại

Trả lời

1

công cụ khác dành cho bạn: JavaScript Memory Validator.

Hiển thị phân bổ, các đối tượng, các điểm nóng, các thế hệ, ảnh chụp nhanh vv

trình với Firefox 1.0 qua 3.6.

+0

Rất ngạc nhiên với công cụ này. Có lẽ tốt nhất của những người chúng tôi đánh giá. Đó là một chút không được đánh bóng trên các cạnh. Đã bị hỏng một vài lần và rất chậm, nhưng đã hoàn thành công việc mặc dù hơi bực bội khi sử dụng. –

+0

Bạn có thực sự có thể sử dụng công cụ này không? Chúng tôi đã thử sử dụng nó nhưng trước tiên nó quét một hệ thống (chúa biết những gì nó quét), và tìm plugin-container. sau đó khi bạn khởi chạy ứng dụng, không có gì xảy ra. –

1

Tôi đã sử dụng Trình phát hiện rò rỉ bộ nhớ JavaScript và tôi có thể cho bạn biết nó hoạt động tốt.

Bạn đang sử dụng công cụ động nào? Dựa trên việc đề cập đến một dịch vụ web .Net, tôi đoán rằng bạn đang sử dụng ASP.Net. Đúng không? Bạn có thể muốn xem thư viện JavaScript ASP.Net AJAX. Nó được xây dựng theo cách giúp tình trạng này. Tất cả các thành phần đều có phương thức dispose() cho phép bạn loại bỏ các tham chiếu đến các đối tượng DOM. Khi tôi chuyển sang ASP.Net AJAX, trang của tôi trở nên nhạy hơn nhiều.

+0

Công cụ này trông đầy hứa hẹn nhưng không bao giờ báo cáo bất cứ điều gì; các điều khiển luôn luôn trống. Hãy nghĩ về nó có thể là nó không chạy trên IE8. Tôi sẽ thử lại trên IE7 và báo cáo lại. Cảm ơn bạn đã có mẹo về thư viện Javascript AJAX. Giải pháp của chúng tôi sử dụng các thành phần Javascript tùy chỉnh với JQuery, vì vậy nó sẽ không hoạt động đối với chúng tôi. –

+0

Vâng. Công cụ này dành cho các phiên bản IE trước IE8. Đó là vì các vấn đề rò rỉ bộ nhớ mà chúng kiểm tra đã được sửa trong IE8. Nếu bộ nhớ bị rò rỉ bạn đã nói xảy ra trong IE8 (hoặc Firefox, vv), thì tôi không nghĩ bất kỳ công cụ nào trong số này có thể giúp bạn.Họ kiểm tra mã gây rò rỉ trong các phiên bản IE trước IE8. –

2

sIEve dành riêng cho rò rỉ bộ nhớ trong IE. Những gì tôi thích về nó là bạn có thể tái tạo một cách đáng tin cậy các bước được sử dụng và thu thập dữ liệu có thể hành động. Thấy như sau:

How to use IE7 Javascript memory leak detectors?

+0

Cảm ơn chúng tôi đã thử. Không phải là một công cụ tồi. Nó hoạt động trên IE7 nhưng không hoạt động trên IE8. Chúng tôi vẫn không thể tìm ra nguyên nhân gây rò rỉ với công cụ này, có thể là do chúng tôi đã không sử dụng công cụ một cách chính xác ... –

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