OK, đây là những gì tôi muốn:Các phương thức lớp VS Các hàm tĩnh lớp VS Các hàm đơn giản - Hiệu năng-khôn ngoan?
- Tôi đã viết một số chức năng thực sự đòi hỏi (chủ yếu hoạt động trên bitmap, vv) mà phải càng nhanh càng tốt
- Bây giờ, chúng ta hãy cũng đề cập rằng những các hàm cũng có thể được nhóm theo loại hoặc thậm chí theo loại biến mà chúng hoạt động.
- Và vấn đề là, ngoài việc thực hiện rất nhiều thuật toán, tôi nên làm gì - từ quan điểm kỹ thuật - để không làm hỏng tốc độ.
Và bây giờ, tôi đang xem xét các tình huống sau:
- Tạo họ hoạt động như đơn giản và chỉ cần vượt qua các thông số cần thiết như các đối số
- Tạo một lớp (cho 'nhóm'/mục đích tổ chức) và chỉ tuyên bố chúng là tĩnh
- Tạo lớp theo loại, ví dụ Tạo một lớp để làm việc trên bitmap, tạo một đối tượng mới của lớp đó cho mỗi bitmap (ví dụ
Bitmap* myBitmap = newBitmap(1010);
, và hoạt động trên nó với các phương pháp bên trong của nó (ví dụmyBitmap->getFirstBitSet()
)
Bây giờ, mà những phương pháp tiếp cận là nhanh nhất? có thực sự bất kỳ sự khác biệt giữa các chức năng thẳng đơn giản và class-đóng gói static
chức năng, hiệu suất-khôn ngoan Bất kỳ kịch bản khác đó sẽ là một lợi thế, mà tôi đã không được đề cập
Sidenote:? tôi đang sử dụng trình biên dịch clang++
, dành cho Mac OS X 10. 6.8. (nếu điều đó tạo ra bất kỳ sự khác biệt nào)
Đã cố định hồ sơ? –
Nếu bạn thực sự quan tâm về hiệu suất, Bạn nên cấu hình cả hai phiên bản bạn đề xuất trên envrionment của bạn. Đó là cách bạn nhận được một chẩn đoán tốt hơn là meere đoán mà câu trả lời ở đây sẽ cung cấp cho bạn. –
@ LuchianGrigore + AlokSave Thành thật mà nói, không, tôi chưa chạy bất kỳ bài kiểm tra hồ sơ nào. Vâng, tôi biết một số điều tốt hơn để được chẩn đoán dựa trên môi trường chính xác mà họ cho là đang chạy; Tôi đoán tôi cần một số ý kiến về một số bit của lý thuyết đằng sau tình trạng khó xử của tôi, tôi có thể bị mất tích. * (ví dụ, mặc dù tôi đã xem xét nó, có thể tạo lớp và gọi phương thức nhanh hơn một cuộc gọi chức năng đơn giản? Vẫn đoán ... mặc dù tôi nghĩ tôi đoán đúng ...) * –