2011-07-05 13 views
5

C++ Tóm tắtSử dụng pragma nội tại (sqrt, pow) trong C#?

Sử dụng lệnh #pragma intrinsic trong phần Preprocessor mã của bạn sẽ làm tăng đáng kể tốc độ của hầu hết các cuộc gọi chức năng toán học.

Mã trên cho phép hầu hết các chức năng toán học gọi trực tiếp đến bộ xử lý toán thay vì được gửi đến ngăn chức năng.

Câu hỏi

Có cách nào để làm điều này trong C#? Khác hơn là viết lại các chức năng được xây dựng để làm một cái gì đó tương tự. Ví dụ như, người ta thường làm sức mạnh của hai, vì vậy đây sẽ là thích hợp, nhưng nó không phải là những gì tôi đang tìm kiếm:

public double Pow2(double value) 
{ 
    return (value * value); 
} 

Trả lời

3

C# không cần "#pragma nội tại", bởi vì:

Accessing math coprocessor from C#

Trình biên dịch JIT biết về coprocessor toán và sẽ sử dụng nó.

+0

'Đây là một phần của lời hứa về biên soạn JIT, ... nhưng tôi không nghĩ .NET thực sự làm điều đó, ít nhất là trong v4.' –

+1

@Dark: Bạn đang trích dẫn tôi bối cảnh. Đó là bit cụ thể đã nói về việc sử dụng SIMD. –

+0

Quyền của bạn, xấu của tôi. Không thấy điều đó. Vì vậy, những gì sẽ là một sự thay thế khả thi nếu tôi muốn tăng tốc độ mã của tôi? –