2011-08-08 41 views
10

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?

+0

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? –

Trả lời

9

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.

1

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.

+0

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

+2

@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

+0

+1 cho liên kết – nerdytenor

4

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.

+1

đồ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. –

Các vấn đề liên quan