2016-09-19 15 views
5

Tôi cố gắng tối ưu hóa hiệu suất của ứng dụng node.js và do đó tôi phân tích hành vi của trình biên dịch JIT của V8.tìm mã nguồn JS tương ứng không được tối ưu hóa bởi V8

Khi chạy ứng dụng thông qua node --trace_deopt --trace_opt --code_comments --print_optcode ..., sản lượng chứa nhiều dòng định kỳ như sau:

[didn't find optimized code in optimized code map for 0x490a8b4aa69 <SharedFunctionInfo>] 

Làm thế nào tôi có thể tìm ra mã javascript tương ứng với 0x490a8b4aa69?

Đầu ra đầy đủ có sẵn here.

+0

Luôn đặt tên cho các chức năng của bạn :-) – Bergi

+1

@Bergi bất kỳ lời khuyên thực tế nào? :) –

+0

Phiên bản nào của v8 (hoặc Node.js) đã được bật? Thông báo lỗi đó được sử dụng để nằm quanh dòng 10200 của 'v8/src/objects.cc', nhưng không còn nữa. * Về cơ bản nó có nghĩa là tối ưu hóa không được sử dụng cho một dấu vết cụ thể. Có thể bởi vì nó không được sử dụng, hoặc được sử dụng không thường xuyên. Nó có thể có khả năng là một hàm thư viện Node.js. Địa chỉ được cung cấp có trong bộ nhớ. Bạn sẽ phải đính kèm một trình gỡ rối vào v8 và tải biểu tượng cho SharedFunctionInfo tại vị trí đó. Có thể có điểm ngắt trên dòng sản xuất tin nhắn. * – TylerY86

Trả lời

2

Thông báo lỗi đó được sử dụng để ở quanh dòng 10200 của v8/src/objects.cc, nhưng không còn nữa. Nó về cơ bản có nghĩa là không có tối ưu hóa hiện đang được sử dụng cho một dấu vết cụ thể. Có thể bởi vì nó không được sử dụng, hoặc được sử dụng không thường xuyên. Nó có thể có khả năng là một hàm thư viện Node.js. Địa chỉ được cung cấp có trong bộ nhớ. Bạn sẽ phải đính kèm trình gỡ rối vào v8 và tải biểu tượng cho số SharedFunctionInfo tại vị trí đó. Có thể phá vỡ trên dòng sản xuất tin nhắn quá.

Tôi không nghĩ rằng nó là hữu ích để biết những gì không được tối ưu hóa, vì có rất nhiều thứ không được tối ưu hóa ... chỉ cần lấy đầu ra từ --trace_opt và giả sử mọi thứ khác không phải là. Nó chỉ là một gợi ý rằng một kiểm tra được thực hiện cho mã tối ưu hóa, và không ai có thời gian. Có thể thử --trace_codegen và làm việc ngược.

Điều này có vẻ là một điều rất tốn thời gian để nghiên cứu.
Thorsten Lorenz sẽ là anh chàng để hỏi về điều này.

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