Tôi thích viết mã thực sự dễ đọc trong Java. Đối với điều đó tôi sử dụng các mô hình xây dựng và có rất nhiều phương pháp tĩnh. Nhưng tại một số điểm tôi gọi hoặc chuỗi rất nhiều phương pháp, vì vậy tôi đã đưa ra câu hỏi này: Liệu nó có bất kỳ vấn đề hiệu suất gọi rất nhiều phương pháp?Cuộc gọi phương thức ảnh hưởng đến hiệu suất trong Java như thế nào?
Trả lời
Phương pháp nào có hiệu quả lớn hơn nhiều so với phương thức gọi chính nó. Đây là một tối ưu hóa trước khi trưởng thành mà bạn nên tránh.
Bạn không có ý tưởng về cách tối ưu hóa thời gian chạy được tích hợp vào bản thân JVM sẽ ảnh hưởng đến hiệu suất. Họ sẽ thông minh hơn nhiều so với nỗ lực của bạn.
Viết ứng dụng của bạn, tiểu sử và xem liệu có bất kỳ cải tiến rõ ràng nào bạn có thể thực hiện hay không. Lặp lại cho đến khi hiệu suất được chấp nhận.
Nói chung: không thực sự.
Tuy nhiên, một trường hợp mà nó có thể cung cấp một lượng đáng kể chi phí không cần thiết là khi thực hiện một cuộc gọi đệ quy lớn. Nếu đây là trường hợp và hiệu suất là một vấn đề, bạn nên nhìn vào một phương pháp lập trình năng động hoặc thực hiện ngăn xếp của riêng bạn.
Nếu không, phương pháp của bạn phải phức tạp hợp lý trong logic của nó để vượt quá bất kỳ lần truy cập hiệu suất nào đạt được.
Bạn có bất kỳ bằng chứng nào để hỗ trợ khiếu nại của bạn về các cuộc gọi đệ quy lớn không? [Sau đây ngụ ý nếu không] (http://www.ahmadsoft.org/articles/recursion/index.html) – nerdytenor
@nerdytenor: Có Tôi làm từ kinh nghiệm cá nhân (Tôi sẽ không mang bạn với các chi tiết và thay vào đó khuyến khích bạn chuẩn nó cho mình nếu bạn có bất kỳ nghi ngờ). Vui lòng đọc phần cuối bài đăng bạn đã liên kết để giải thích sự khác biệt về hiệu suất. Dưới đây là so sánh chính xác hơn (trên cùng một trang): http://www.ahmadsoft.org/articles/recursion/ubuntu.html – tskuzzy
+1 cho liên kết – nerdytenor
Khả năng đọc hầu như luôn luôn là cách để thực hiện. Có tác động đến hiệu suất cho các cuộc gọi hàm nhưng mã không đọc được có thể sẽ bị các vấn đề triển khai khác sẽ có hiệu suất cao hơn.
Sử dụng từ khóa cuối cùng khi thích hợp để bạn đề xuất nội tuyến cho các chức năng này.
Tình huống mà bạn không muốn sử dụng nhiều cuộc gọi chức năng là các vòng chặt chẽ. Điều gì đó xảy ra hàng trăm nghìn lần. Và thường những nơi này có thể được tối ưu hóa ở cuối nếu tối ưu hóa phần mềm là cần thiết.
đồng ý ở đây và để nhắc lại: trừ khi bạn đang tạo hàng trăm hàng ngàn cuộc gọi trong vòng vài giây, đây không phải là điều bạn cần phải lo lắng. –
- 1. z-index, ảnh hưởng đến hiệu suất như thế nào?
- 2. Trong SQL, việc sử dụng DISTINCT ảnh hưởng như thế nào đến hiệu suất?
- 3. Bí danh là gì và nó ảnh hưởng như thế nào đến hiệu suất?
- 4. Dateadd ảnh hưởng như thế nào đến hiệu suất của truy vấn SQL?
- 5. Các nhánh đóng ảnh hưởng như thế nào đến hiệu suất Mercurial?
- 6. lượt xem sqlite3 ảnh hưởng đến hiệu suất?
- 7. Mệnh đề IN ảnh hưởng như thế nào đến hiệu năng trong oracle?
- 8. C++ Ảnh hưởng đến từ khóa có thể thay đổi đến hiệu suất của vùng chứa như thế nào?
- 9. iPhone/iPad: Có nhiều cuộc gọi NSLog() ảnh hưởng đến hiệu suất hoặc bộ nhớ ứng dụng không?
- 10. DBMS ảnh hưởng như thế nào đến hiệu suất của ứng dụng? Và các công cụ GUI của Informix?
- 11. Hiệu suất của StackFrame như thế nào?
- 12. Chroot ảnh hưởng đến liên kết động như thế nào?
- 13. Các luồng trong Java ảnh hưởng đến mức tiêu thụ bộ nhớ như thế nào?
- 14. ASP.NET MVC: Định tuyến sên tùy chỉnh mà không ảnh hưởng đến hiệu suất
- 15. Hiệu suất gọi các đại biểu so với các phương thức
- 16. .NET Garbage Collection - Nó ảnh hưởng như thế nào?
- 17. Trình xử lý ảnh hưởng đến cách onReceiveResult (ResultReceiver) được gọi ra như thế nào?
- 18. Làm thế nào để xóa tập tin ibdata1 và làm thế nào nó có thể ảnh hưởng đến hiệu suất?
- 19. Trong Redis là tất cả các khóa băm được lưu trữ trong cùng một "bảng"? và nếu như vậy nó ảnh hưởng đến hiệu suất như thế nào?
- 20. Có nhiều dll trong dự án Windows Phone của bạn ảnh hưởng đến hiệu suất không?
- 21. Các cuộc gọi phương thức trong EL
- 22. Kích thước của tệp jar có ảnh hưởng đến hiệu suất của JVM không?
- 23. ActiveRecord phát hiện cuộc gọi phương thức cuối cùng trong chuỗi như thế nào?
- 24. Ảnh hưởng của Stemming đến tần suất hạn?
- 25. Tuyên bố in trong thủ tục SQL sẽ ảnh hưởng đến hiệu suất?
- 26. Thực hiện nhiều lệnh nhập trong chương trình có ảnh hưởng đến hiệu suất không?
- 27. Việc tải nhiều gói ảnh hưởng đến hiệu suất tổng thể của một ứng dụng Symfony2?
- 28. Các mảnh Android và ảnh hưởng của nó đến hiệu suất
- 29. Làm thế nào để chờ đợi trên Task.Result ảnh hưởng đến các phương thức async/await lồng nhau?
- 30. Kích thước bảng có ảnh hưởng đến hiệu suất INSERT không?
Nếu bạn, người đang sử dụng mã, không biết liệu có tác động hiệu suất có thể đo lường và nghiêm trọng không, chúng ta nên biết như thế nào? –