2013-03-10 13 views
21

Sự khác biệt giữa MethodImplAttribute với tùy chọn MethodImplOptions.AggressiveInliningTargetedPatchingOptOut 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.

+2

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

+0

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? –

+0

Đó là cách tôi cũng diễn giải nó. – dtb

Trả lời

11

Tôi đang chờ xem liệu có ai đó có thể có câu trả lời hay hơn nhưng có vẻ như không.

Sau khi đọc nhận xét dtb, tôi đã nghiên cứu thêm một chút và tìm thấy số này http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/20/aggressive-inlining-in-the-clr-4-5-jit.aspx.

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 bên trong của phương thức trong khi như dtb cho biết TargetedPatchingOptOut sẽ cho phép nội tuyến biên giới.

+7

Như đã đề cập ở trên, không áp dụng TargetedPatchingOptOut trong mã của riêng bạn - xem http://stackoverflow.com/a/14982340/94078 – eug

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