Chức năng của tôi sẽ được gọi là hàng ngàn lần. Nếu tôi muốn làm cho nó nhanh hơn, sẽ thay đổi các biến chức năng cục bộ thành tĩnh được sử dụng bất kỳ? Logic của tôi đằng sau điều này, bởi vì các biến tĩnh liên tục giữa các cuộc gọi hàm, chúng chỉ được cấp phát lần đầu tiên, và do đó, mọi cuộc gọi tiếp theo sẽ không cấp phát bộ nhớ cho chúng và sẽ trở nên nhanh hơn, vì bước cấp phát bộ nhớ không được thực hiện.Trong C, việc sử dụng các biến tĩnh trong một hàm có làm cho nó nhanh hơn không?
Ngoài ra, nếu điều trên là đúng, thì sẽ sử dụng các biến toàn cục thay vì các thông số sẽ nhanh hơn để truyền thông tin đến hàm mỗi khi nó được gọi? Tôi nghĩ rằng không gian cho các tham số cũng được phân bổ trên mọi cuộc gọi hàm, cho phép đệ quy (đó là lý do tại sao đệ quy sử dụng nhiều bộ nhớ hơn), nhưng vì chức năng của tôi không đệ quy, và nếu lý luận của tôi là chính xác, nó nhanh hơn.
Tôi biết những điều tôi muốn làm là thói quen lập trình khủng khiếp, nhưng xin vui lòng, cho tôi biết nếu nó là khôn ngoan. Tôi sẽ thử nó anyway nhưng xin vui lòng cho tôi ý kiến của bạn.
Không tối ưu hóa mã TRƯỚC KHI lập hồ sơ! ... –
http://stackoverflow.com/questions/3730000/can-static-local-variables-cut-down-on-memory-allocation-time – jamesdlin
Làm thường xấu những thứ để đạt được tốc độ cực kỳ cận biên cho một chức năng gọi là hàng ngàn lần là một ý tưởng thực sự tồi tệ. Nếu bạn có thể tiết kiệm 10ns cho mỗi lần gọi hàm cho một hàm gọi là hàng ngàn lần ... bạn đã lưu một số bội số của 10 micro giây, điều này không quan trọng, trừ khi bạn đang làm việc trên một hệ thống thời gian thực cứng và có một vấn đề nghiêm trọng với thời gian cắt. –