Bạn lấy "nó sẽ nâng cao hiệu suất" như đã cho, nhưng bạn có thực sự chắc chắn về điều này? Cấu trúc hoạt động tốt hơn các lớp trong trường hợp rất cụ thể. Tôi đang khái quát về tính đơn giản, nhưng các trường hợp chủ yếu là:
- Chúng không thay đổi.
- Chúng nhỏ, ví dụ: thường không quá 3 - 4 trường.
- Bạn đang tạo tấn (thường là hàng triệu hoặc nhiều hơn) trong số chúng trong một khoảng thời gian rất ngắn.
- Bạn đang làm việc với họ trong vòng lặp chặt chẽ.
- Các đường dẫn mã mà chúng đi qua được tối ưu hóa cho các cấu trúc cụ thể đó và không thực hiện các hoạt động boxing/unboxing.
Có những người khác, nhưng đó chỉ là ngoài đỉnh đầu của tôi. Và thậm chí sau đó, chúng tôi đang nói về lợi nhuận hiệu suất thường rất nhỏ. Như trong micro giây trừ đi.
Thậm chí nếu bạn có thể đảm bảo rằng các kiểu xem của bạn là không thay đổi và nhỏ, các điều kiện khác không giữ. Giả sử một mô hình xem cho mỗi yêu cầu, máy chủ web của bạn sẽ không xử lý hàng triệu yêu cầu mỗi giây. Hơn nữa, khung công tác MVC không làm việc với các vòng lặp chặt chẽ này và không chứa các đường dẫn mã được tối ưu hóa cho cấu trúc cụ thể này. Khung MVC sẽ kết thúc thực hiện tấn các hoạt động boxing/unboxing trên các loại giá trị của bạn.
Điểm mấu chốt - không tối ưu hóa vi mô hoặc xây dựng kỹ hơn giải pháp của bạn. Các lớp học rất tốt. Và khi tối ưu hóa có liên quan, luôn đo lường để đảm bảo bạn dành thời gian của mình cho một liên doanh đáng giá. Đừng bận tâm với tầm thường khi có cá lớn hơn để chiên.
Cảm ơn bạn rất nhiều vì đã dành thời gian và giải thích kỹ lưỡng, Levi. Suy nghĩ của bạn làm cho ngày của tôi. –
Ngoài ra, một cấu trúc được chuyển qua ngăn xếp (nhiều thông tin hơn để truyền tải) và lớp được truyền qua heap thông qua một con trỏ (ít thông tin hơn để truyền). Tôi biết đó là một câu hỏi cũ nhưng nghĩ rằng du khách mới xứng đáng được biết nhiều hơn. –