2014-10-15 14 views
7

Tôi đã nâng cấp ReSharper và thấy lỗi mà tôi không có trước đây. Tôi đã kiểm tra xung quanh, nhưng không tìm thấy gì về lỗi hoặc vấn đề cơ bản mà nó đang gắn cờ.Tạo đại biểu chậm

** Chỉnh sửa **: như được chỉ ra bên dưới, nó thực sự là plugin 'Trình xem phân bổ Heap', chứ không phải chính bản thân đang đánh dấu nó là lỗi - mặc dù điều đó không thay đổi câu hỏi.

Chậm tạo đại biểu: từ giao diện 'IPluginHandler' phương pháp

điều này xảy ra trong khi đăng ký của một handler plugin để sự kiện trên một aggregator sự kiện.

public void Subscribe(IPluginHandler subscriber) 
{ 
    Executing += subscriber.OnExecuting; 
    // -- additional subscriptions -- 
} 

trong đoạn mã trên, Executing là một sự kiện và subscriber.OnExecuting là một xử lý sự kiện thích hợp cho sự kiện này.

Để rõ ràng, đây là lỗi mềm của ReSharper 'vì mã sẽ vẫn tạo và chạy như mong đợi.

Vì vậy, câu hỏi của tôi là vấn đề cơ bản mà những người tốt ở JetBrains đang gắn cờ cho tôi và các nhánh của nó là gì.

Cảm ơn

+0

[this] (http://stackoverflow.com/a/2082895/1244816) có thể giải thích một số của nó - Tôi đã không đọc những điều lỗ mặc dù :) –

Trả lời

4

This JetBrains blog post có cùng câu hỏi trong nhận xét.

Câu trả lời có nói điều này:

Hi! Plugin này cũng có thêm một tính năng bên trong: kiểm tra mã để hiển thị các tác phẩm ví dụ đại diện ‘chậm’ (> 10x chậm hơn) cho CLR x86 JIT. Bạn có thể chạy this test (nó tạo các đại biểu từ nhiều loại phương thức khác nhau - virtual/interface/generic/etc) để xem sự khác biệt về hiệu năng tạo đại biểu.

Cũng giống như kiểm tra phân bổ - bạn không nên quan tâm đến điều này cho đến khi một số ảnh chụp nhanh hiệu suất trong một số đường dẫn nóng của ứng dụng của bạn hiển thị lời gọi dài của nội bộ CLR. Và cũng giống như với phân bổ - kiểm tra này có thể (và sẽ) sản xuất tích cực sai với RuyJIT mới, ví dụ.

Lưu ý rằng linked test làm nổi bật tác phẩm tạo đoàn "chậm" với nhận xét mũi tên: <--.

+0

Tôi đã cài đặt 'Heap Allocations Viewer'. Tôi sẽ cập nhật câu hỏi với nguồn chính xác của thông báo lỗi. Điều này giải thích tại sao nó bị gắn cờ - mặc dù tôi sẽ giảm mức độ nghiêm trọng đối với một cảnh báo. Bất kỳ cái nhìn sâu sắc về lý do tại sao viết nó theo cách này là '> 10x chậm hơn' so với những cách khác? Chỉ muốn hiểu càng sâu càng tốt. Cảm ơn. –

+0

Thử nghiệm đó khá độc lập. Hãy thử chạy nó và xem kết quả bạn nhận được; sau đó bạn có thể quyết định xem nó có đáng để chuyển sang một phong cách khác không. –

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