Sự khác biệt giữa MethodImplAttribute với tùy chọn MethodImplOptions.AggressiveInlining
và TargetedPatchingOptOut
là gì?MethodImplOptions.AggressiveInlining vs TargetedPatchingOptOut
Khi tôi tìm kiếm trên Google, mọi người dường như đều nói rằng cả hai (có thể) đều có nội tuyến nhưng không đưa ra sự khác biệt.
TargetedPatchingOptOut được giải thích khá rõ ở đây: http://stackoverflow.com/questions/6109745 Phần quan trọng dường như là nội tuyến được thực hiện qua các ranh giới lắp ráp, không được thực hiện theo mặc định. Tôi hy vọng rằng AggressiveInlining là một gợi ý để inline phương thức, nhưng không giống như TargetedPatchingOptOut không cho phép nội tuyến trong các ranh giới assembly. – dtb
Sau khi tôi đọc nhận xét của bạn, tôi đã nghiên cứu thêm một chút và tìm thấy [link] này (http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/20/aggressive-inlining-in- the-clr-4-5-jit.aspx). Sự hiểu biết của tôi về bài đăng này là bạn có thể áp dụng cả thuộc tính AggressiveInlining sẽ loại bỏ giới hạn kích thước của phương thức trong khi giống như bạn đã nói TargetedPatchingOptOut sẽ cho phép nội tuyến biên qua các ranh giới lắp ráp. Đúng không? –
Đó là cách tôi cũng diễn giải nó. – dtb