2010-12-12 22 views
6

Tôi đã tự hỏi, làm các khoảng trắng và nhận xét làm chậm JavaScript? Tôi đang thực hiện một cuộc tấn công bạo lực mà mất một thời gian (30 giây). Loại bỏ khoảng trắng không cho thấy tốc độ tăng trưởng đáng kể, nhưng tôi nghĩ trình duyệt chỉ cần phân tích cú pháp nhiều hơn.Không gian/nhận xét làm chậm Javascript xuống?

Vì vậy, nó có sử dụng bất kỳ để loại bỏ khoảng trống và nhận xét không cần thiết để tăng tốc toàn bộ không?

+0

Lý tưởng nhất, javascript phải được nén trên môi trường sản xuất. Vì vậy, câu trả lời là có, nó được sử dụng. –

+0

Tôi quên đề cập rằng nó sẽ không được trên một trang web cũng không được lấy rất thường xuyên; trên thực tế, tôi chỉ cần chạy một số thuật toán nhất định chỉ vài lần để tính toán cho bản thân mình. Vì vậy, băng thông không thực sự là những gì tôi đang nói đến. – pimvdb

+0

@Sergey: điều này không đúng. Các chú thích và khoảng trống có tác động không đáng kể đến hiệu suất ngay cả các trình duyệt hiện đại với trình biên dịch JIT được tích hợp sẵn. –

Trả lời

10

Mọi người thường sử dụng các trình tối ưu hóa để giảm SIZE của tập lệnh, để cải thiện tốc độ tải xuống, thay vì thực hiện bất kỳ sự khác biệt nào về tốc độ phân tích cú pháp tập lệnh.

Khoảng trắng và nhận xét sẽ có ít ảnh hưởng trong thời gian trình duyệt thực thi, vì trình phân tích cú pháp cần kiểm tra xem nó có khoảng trống hay nhận xét hay không, nhưng thực tế điều này sẽ rất ngắn với sức mạnh tính toán hiện tại sẽ không thể nhận thấy bất kỳ tác động nào.

SIZE tuy nhiên vẫn quan trọng ngay cả với băng thông lớn có sẵn trong thế giới băng thông rộng của chúng tôi.

+0

Tôi hiểu rồi, vì vậy tôi sẽ giữ nó sau đó. Giảm thiểu mọi thời gian sẽ mất nhiều thời gian hơn vào cuối, và tôi không xuất bản thuật toán trực tuyến của mình. – pimvdb

+0

Bạn có thể giải thích ý nghĩa của việc giảm SIZE của tập lệnh không? Bạn có nghĩa là số lượng ký tự? – Squirrl

+0

có, Kích thước == byte dữ liệu, vì vậy có thể gần bằng với số ký tự. – Codemwnci

3

Khoảng trắng và nhận xét tăng kích thước tệp JavaScript, làm chậm quá trình tải xuống tệp thực sự từ máy chủ - rút gọn là quá trình tước các ký tự không cần thiết khỏi tệp JavaScript để giúp tải xuống nhỏ hơn và dễ dàng hơn .

Tuy nhiên, vì bạn đề cập đến một cuộc tấn công bạo lực, nút cổ chai có thể là không phải là tải xuống. Hãy thử sử dụng một profiler để tìm thấy những gì làm chậm bạn xuống.

3

Luôn có một điểm trong việc giảm thiểu, kết hợp và gzipping tài sản của bạn, để giảm tải máy chủ.

  • Giảm thiểu là hành động bạn đề cập đến, loại bỏ khoảng trống và nhận xét không cần thiết, để làm cho tốc độ tải xuống nhỏ hơn.
  • Kết hợp nhiều khả năng sẽ cho thấy tốc độ hiển thị trang càng tăng cao hơn; nó là hành động kết hợp tất cả các tệp javascript của bạn thành một, và tất cả các tệp css của bạn thành một (nó cũng có thể được thực hiện cho hầu hết các hình ảnh, nhưng taks đó đòi hỏi một số công việc nhiều hơn). Điều này được thực hiện để giảm số lượng yêu cầu mà trình duyệt phải thực hiện đối với máy chủ của bạn, để có thể hiển thị trang.
  • GZipping là hành động tiếp tục nén dữ liệu, theo định dạng nén, tới các trình duyệt cho biết rằng họ sẽ chấp nhận dữ liệu đó. Điều này làm giảm thêm kích thước, nhưng thêm một số tải công việc phụ ở cả hai đầu. Bạn có thể thấy một lợi ích ròng từ nó.

Tùy thuộc vào môi trường bạn đang làm việc, có các thành phần khác nhau sẽ giúp bạn thực hiện điều này, thường bao gồm tất cả những điều trên một lần.

Thời gian mã của bạn cần tải xuống từ máy chủ có ảnh hưởng trực tiếp đến thời gian trang cần hiển thị. JavaScript đang chặn, có nghĩa là một khối JS sẽ ngăn chặn bất kỳ hiển thị furhter, cho đến khi khối đã thực hiện hoàn toàn. Như vậy, nơi bạn đặt các tệp javascript của mình (ví dụ: trong đó điểm trong quá trình hiển thị chúng sẽ được yêu cầu), số lượng yêu cầu cần để tải xuống hoàn toàn và lượng dữ liệu cần tải xuống, sẽ có tác động trên tải trang của bạn, khi nó xuất hiện cho người dùng.

Khi trình duyệt đã phân tích cú pháp mã của bạn, có thể là javascript, css hoặc html, nó sẽ tạo ra các biểu diễn nội bộ của phần cần ghi nhớ và định dạng thực sẽ không còn ảnh hưởng đến nó nữa.

+0

Cảm ơn, bạn đã dạy tôi một số điều rất hữu ích ở đây. Tuy nhiên, trường hợp của tôi không liên quan gì đến máy chủ, vì tôi đang chạy nó cục bộ. Tôi sẽ ghi nhớ điều này trong tương lai, nó thực sự hữu ích. – pimvdb

+0

Có, để triển khai tại địa phương, bạn có thể bỏ qua điều này một cách an toàn. Nếu bạn sẽ kết thúc làm một cái gì đó như thế này, bạn sẽ muốn tìm một công cụ tự động hóa nó cho bạn. Hãy cẩn thận, khi bạn bắt đầu sử dụng điều này trong sản xuất, bạn cũng sẽ muốn sử dụng nó tại địa phương. Không phải vì lợi ích tốc độ của địa phương, mà bởi vì bạn muốn môi trường phát triển của bạn phù hợp với môi trường sản xuất của bạn càng chặt chẽ càng tốt. Đó là một câu hỏi hoàn toàn khác, tho :) –

0

Nó có ít hoặc không có ảnh hưởng đến tốc độ xử lý thực tế, tuy nhiên ...

nhỏ hơn size => ít băng thông => ít chi phí => ??? => lợi nhuận!

1

Tôi không nghĩ khoảng trắng trong mã js làm chậm việc thực thi của nó. Theo như tôi hiểu một thông dịch viên javascript loại bỏ tất cả các bình luận và khoảng trắng thừa trước khi xử lý. Nó có thể ảnh hưởng đến thời gian tải về vi do đó tải thời gian của một trang web tuy nhiên.

Hãy xem here để biết thêm thông tin.

+0

Nếu đó là sự thật, tôi không nghĩ rằng tôi sẽ phải quan tâm đến nó cả. Cảm ơn các liên kết. – pimvdb

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