2010-05-10 144 views
29

Tôi có một số mã Javascript sử dụng đệ quy khá sâu và tôi muốn tìm hiểu giới hạn đệ quy trong các trình duyệt khác nhau là gì (tức là điểm mà tại đó lỗi "quá nhiều đệ quy" sẽ xảy ra).Giới hạn đệ quy js cho Firefox, Chrome, Safari, IE, v.v. là gì?

Bất kỳ ai có bất kỳ số rắn nào về điều này, theo phiên bản?

Trả lời

33

Nicholas C. Zakas writes in his blog:

  • Internet Explorer 7: 1,789
  • Firefox 3: 3.000
  • Chrome 1: 21.837
  • Opera 9,62: 10.000
  • Safari 3.2: 500

Có một số dữ liệu khác trên các trình duyệt và hệ điều hành khác nhau here.

Tôi đã tạo thử nghiệm Trình duyệt để có thêm ngày. Please run it here.

+1

Tôi đã ném điều này cùng nhau sau khi đọc rất nhanh của bài viết: http://jsfiddle.net/TdWTs/ – endemic

+0

@endemic Làm việc tốt. Tôi đã thực hiện một trình duyệt cho vấn đề này tại http://adamrich.name/recursion.html Nếu chúng tôi có thể có rất nhiều người để chạy thử nghiệm, chúng tôi có thể nhận được bảng cập nhật các giới hạn khôi phục của trình duyệt và hệ điều hành. – Adam

+0

Kỹ năng đọc hiểu của tôi cần nhiều công việc hơn ... hoàn toàn bỏ qua phần mà bạn đã thực hiện kiểm tra Trình duyệt. Tôi chạy nó với một vài trình duyệt, đáng ngạc nhiên là Chrome có giới hạn thấp nhất! Ồ, một đồng nghiệp đã lo lắng về vài trăm lần lặp đệ quy (wat), do đó, tôi quan tâm đến việc tìm kiếm sự thật. – endemic

10

Để thêm vào câu trả lời ở đây, điều này cũng có thể phụ thuộc vào các chức năng liên quan đến đệ quy. Ví dụ, chỉ cần thêm một vài tham số cho hàm có thể thay đổi kết quả:

var i=0; 
function inc() { 
    i++; 
    inc(); 
} 
inc(); 

mang lại cho tôi 20.923, nhưng

var i=0; 
function inc(j, k, l) { 
    i++; 
    inc(l, k, j); 
} 
inc(1, 2, 3); 

báo cáo 13.949 (thử nghiệm trong giao diện điều khiển trong Chromium 39). Firefox 34 tương ứng với 25085 và 13572.

Thêm khối thử/nắm bắt xung quanh nội dung của đối sốcung cấp 11413 khung trong Chromium và 13161 trong Firefox. Với cả 3 đối số và khối try/catch, 8967 trong Chrome và 7517 trong Firefox.

Mua của tôi từ đây là ứng dụng hoạt động gần độ sâu ngăn xếp trong trình duyệt có thể chỉ tìm ra điều này dựa trên các phép đo thực nghiệm của các chức năng giống với các chức năng được sử dụng trong ứng dụng.

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