Sử dụng một trình định dạng chất lượng tốt và xác định vị trí nút cổ chai của bạn.
Sau đó, bắt đầu hỏi cách cải thiện hiệu suất.
Bất kỳ ai thực hiện bất kỳ tuyên bố chăn nào như 'tránh phản chiếu' mà không hiểu cả hồ sơ hiệu suất và miền vấn đề của bạn sẽ bị bắn (hoặc ít nhất là được cải thiện). Và với kích thước của khung cảnh .Net, nó khá là vô nghĩa khi nói về tối ưu hóa C#: chúng ta đang nói về WinForms, ASP.Net, BizTalk, Workflow, SQL-CLR? Nếu không có bối cảnh, ngay cả hướng dẫn chung có thể là tốt nhất một sự lãng phí thời gian.
Cũng xem xét ý của bạn là 'tăng tốc' và 'cải thiện hiệu suất'. Bạn có nghĩa là hiệu quả tài nguyên lớn hơn, hoặc thời gian chờ đợi thấp hơn được nhận thức cho một người dùng cuối (giả sử có một)? Đây là những vấn đề rất khác nhau để giải quyết.
Với diễn đàn, tôi cảm thấy có nghĩa vụ chỉ ra rằng có một số phạm vi bảo hiểm khá tốt về các chủ đề này trong Hoàn thành mã. Không phải C# tâm cụ thể. Nhưng đó là một điều tốt. Ghi nhớ các tối ưu hóa vi-ngôn ngữ cụ thể có thể được đưa vào phiên bản tiếp theo của bất kỳ trình biên dịch nào bạn đang sử dụng, Và nếu sự khác biệt giữa for và foreach là một vấn đề lớn đối với bạn thì có lẽ bạn đang viết C++, đúng không?
[Tôi thích ANts Profiler RedGate, nhưng tôi nghĩ rằng nó có thể được bettered]
Với điều đó ra cách, một vài suy nghĩ:
- Sử dụng loại (SomeType) trong ưu tiên cho instance.GetType() khi có thể
- Sử dụng foreach trong ưu đãi để cho
- Tránh đấm bốc
- Lên đến (tôi nghĩ) 3 chuỗi nó là ok để làm StringA + StringB + StringC.Sau đó bạn nên sử dụng một StringBuilder
Tôi xin lỗi, nhưng các kỹ thuật tối ưu hóa chung là theo định nghĩa chung, chúng không thể là C# cụ thể :-). –