2015-04-28 14 views
22

Cố gắng nâng cấp ứng dụng của tôi từ nút 0.10.x lên gia đình 0.12.x của nút, tôi đã gặp phải một sự ngạc nhiên khó chịu: 0.12 sử dụng khoảng 15% -20% RAM nhiều hơn 0.10.node.js 0.12.x sử dụng bộ nhớ

Đánh giá bởi fewthreads trên trang sự cố io.js, có vẻ như lỗi nằm ở động cơ v8 cơ bản.

Hiện bản cập nhật phần mềm là một đề xuất khó khăn để bán cho quản lý như hiện tại. Thêm vào đó sự cần thiết phải trả tiền cho phần cứng VPS nhiều hơn với vài lợi ích có thể nhìn thấy, và điều này sẽ trở thành một máy cắt giao dịch cho chúng tôi.

Có cách nào để tắt bất kỳ chuông mới nào & còi v8 đã thêm vào đang chiếm RAM bổ sung không? Có lẽ các công cụ cấu hình CPU được chào hàng?

Về cơ bản, tôi đang tìm một công tắc v8 có thể giảm mức sử dụng bộ nhớ xuống mức tương đương với v8 được chuyển bằng nút 0.10.

+0

Làm cách nào để io.js có giá trị 0,10 trong ứng dụng của bạn? –

+0

Tôi chỉ cố gắng thử nghiệm nó, nhưng đã bị tấn công bởi một loạt các vấn đề npm chưa được giải quyết (không tương thích nút-gyp). Tôi đã từ bỏ tại thời điểm đó, ngay cả khi tôi có thể làm cho nó hoạt động trên một hệ thống thử nghiệm này, nó không có vẻ giống như một cái gì đó tôi có thể dựa vào trong sản xuất. – panta82

+1

Hãy cân nhắc việc mở các vấn đề chống lại các lỗi mà bạn gặp phải trong io.js, tôi nghĩ rằng bất kỳ lượt truy cập hiệu suất nào bạn đạt được trên 0,10 bạn đều có thể giành chiến thắng bằng cách sử dụng máy phát thay vì đóng cửa cho các hoạt động không đồng bộ nhanh hơn. Ngoài ra - bạn đã thực sự mất hiệu suất hay chỉ sử dụng bộ nhớ? (Như trong, cho cùng một lượng ram hệ thống có sẵn - nó cũng phục vụ yêu cầu ít hơn 15%?) –

Trả lời

8

Bạn có thể giới hạn số lượng bộ nhớ mà quy trình Node.js của bạn sử dụng với cờ --max-old-space-size. Có lẽ bạn có thể giới hạn bộ nhớ tại một cái gì đó có thể chấp nhận được và sau đó đánh giá ứng dụng của bạn để xem nó có thực hiện được chấp nhận hay không.

node --max-old-space-size=512 myScript.js 

Tôi tin rằng cũng có những cờ kiểm soát bộ sưu tập rác có thể đáng khám phá. Và có thể đáng để bạn đọc thời gian.

+0

'--max-old-space-size' được sử dụng để tăng bộ nhớ tối đa của quy trình nút trên 512mb. Nó dường như không làm bất cứ điều gì nếu đặt dưới giá trị đó, và thậm chí nếu nó đã làm, tôi không thấy nó sẽ giúp ích như thế nào (trừ việc gây ra sự cố).Tôi biết về công cụ lược tả hiệu suất, vấn đề là cùng một mã sử dụng lượng RAM khác nhau vào các thời gian chạy khác nhau. Vì vậy, có một cái gì đó trong chính V8 mà mất không gian thêm, không phải là mã tôi có thể hồ sơ. – panta82

0

Nếu hoàn nguyên v.10 là tùy chọn cho bạn, bạn có thể thực hiện điều đó rất dễ dàng bằng cách sử dụng Node Version Manager NVM. Chỉ cần chuyển sang bất kỳ phiên bản nào bạn thích khi đang di chuyển và sử dụng nó, trong khi chờ sửa chữa cho v.12.

+0

Đó là những gì tôi đã làm. Nó không phải là giải pháp thực sự tôi đang tìm kiếm, mặc dù. – panta82

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