Video: (Trailer) THE ENTERPRISE VALUATION - Định Giá Doanh Nghiệp: Đâu Là Giá Trị Thực? 2025
Phân tích hiệu suất có lẽ là một trong những nhiệm vụ phức tạp nhất trong việc thiết kế bất kỳ ứng dụng nào. Đó là một khoa học không chính xác bởi vì có nhiều yếu tố đi vào chơi. Các ứng dụng này được tăng cường trong các ứng dụng Enterprise JavaBeans (EJB), trong đó hiệu suất phụ thuộc phần lớn vào việc triển khai EJB container bạn sử dụng. Điểm mấu chốt là bạn không thể biết bạn đang thực hiện đúng các quyết định về hiệu suất cho đến khi bạn kiểm tra chúng.
Dưới đây là một số vấn đề mà bạn nên lưu ý khi xem xét các vấn đề về hiệu suất:
- Không phải tất cả các thùng chứa EJB đều được tạo ra công bằng. Mặc dù mỗi thùng chứa EJB phải phù hợp với đặc tả EJB, các nhà cung cấp có vĩ độ rộng trong việc triển khai container EJB. Yêu cầu của họ tập trung vào kết quả của hoạt động, chứ không phải về hiệu quả của một hoạt động. Một số nhà cung cấp sẽ làm việc tốt hơn với các phần khác nhau của một thùng EJB. Bạn phải xác định nơi có hiệu quả có thể thu được trong một container EJB và nơi tắc nghẽn hiệu suất sẽ xảy ra. Cách duy nhất để biết rằng với sự chắc chắn là thử trước khi mua. Ngay cả sau khi bạn mua giải pháp, các quyết định thiết kế chính, chẳng hạn như việc sử dụng hạt thực thể EJB hay không, cần được kiểm tra.
- Hiệu suất có thể phụ thuộc vào hiệu quả của ứng dụng của bạn. Có những quy tắc chung mà bạn có thể sử dụng để giúp xác định thiết kế ứng dụng nào tốt hơn các ứng dụng khác. Tuy nhiên, những hướng dẫn này có thể bị vô hiệu hóa một cách dễ dàng bằng cách thực thi cẩu thả. Cách tốt nhất để đảm bảo bạn tránh thực hiện cẩu thả là thực hiện đánh giá mã thông thường - đó là khi bạn ngồi chung với tất cả các đồng nghiệp viết mã và yêu cầu họ xem lại công việc của bạn - trong dự án EJB của bạn. Bạn nên tập trung đánh giá mã của mình vào phân tích nguồn và đảm bảo rằng cả hai đều được thiết kế và hiệu quả. Đánh giá mã cung cấp một cơ hội tuyệt vời cho các lập trình viên để học hỏi lẫn nhau.
- Phát triển một mẫu thử nghiệm để kiểm tra các giả định về hiệu năng của bạn. Dưới đây là một ví dụ mẫu. Là nhà phát triển ứng dụng EJB, bạn nên quyết định sớm hay không sử dụng các hạt nhân thực thể để quản lý tương tác với cơ sở dữ liệu. Hai lựa chọn cơ bản của bạn là
• Tạo các hạt thực thể để quản lý tương tác cơ sở dữ liệu. Entity beans có thể đơn giản hóa tương tác cơ sở dữ liệu của bạn từ góc độ lập trình ứng dụng. Nhưng họ cũng có thể xác định một hình phạt hiệu suất. Một số hình phạt đó có thể được kiểm soát theo cách mà bạn thực hiện các hạt thực thể - nghĩa là bằng cách sử dụng các giao diện địa phương với giao diện từ xa hoặc bằng cách làm cho các thực thể hạt các đối tượng hạt thô.
• Mã số JDBC cơ sở dữ liệu cuộc gọi trực tiếp vào đậu phiên và tránh sử dụng các thực thể đậu hoàn toàn. JDBC có thể khó làm việc hơn so với việc sử dụng các hạt thực thể với sự tồn tại bền vững của container. Khóa học này cũng có thể làm suy yếu khả năng của bạn để tận dụng các giao dịch được quản lý bởi EJB.
Để xác định xem hai khóa học nào phù hợp hơn, bạn có thể thực hiện một bài kiểm tra đơn giản:
1. Tạo một thực thể bean và một bean phiên làm cả hai hoạt động trên cùng một bộ dữ liệu từ cơ sở dữ liệu.
2. Viết một chương trình đơn giản đo khoảng thời gian cần thiết để gọi một tập các chèn, cập nhật, truy vấn, và thay đổi cơ sở dữ liệu.
Chương trình thứ hai này nên gọi bean phiên cho một phép thử và thực thể bean cho một phép thử khác - thực hiện cùng một bộ hoạt động trên mỗi.
3. Phân tích các kết quả để xác định hiệu suất sẽ là một vấn đề.
Nếu bạn muốn phân tích hiệu suất tốt hơn, bạn có thể theo từng bước riêng lẻ - để xác định thao tác tốn kém nhất - và sau đó thử sửa đổi các hoạt động đó để tạo ra hiệu suất hoạt động.
Đối với một thực thể bean, bạn có thể muốn đo hiệu suất cho các hoạt động sau:
- Phải mất bao lâu để có được một tham chiếu đến một giao diện từ xa hoặc một giao diện địa phương?
- Sự khác nhau giữa hiệu suất giữa thực hiện cập nhật trên giao diện từ xa và giao diện địa phương là gì?
- Sự khác nhau giữa cập nhật nhiều hàng trong một cơ sở dữ liệu trong JDBC và thực hiện cập nhật trên nhiều hàng bằng cách sử dụng phương pháp gia đình của một thực thể bean?
Câu trả lời cho những câu hỏi này sẽ khác với thùng chứa EJB đến thùng chứa EJB và cũng sẽ bị ảnh hưởng bởi: a) trình điều khiển JDBC bạn chọn; b) có hay không bạn sử dụng kết nối cơ sở dữ liệu tổng hợp; và c) hiệu quả thực hiện của bạn về thực thể bean và bean phiên. Có thể bạn sẽ ngạc nhiên bởi một số kết quả bạn nhận được - các bài kiểm tra như thế này có một cách để thách thức các giả định của bạn về hiệu suất của các hạt nhân thực thể.
Khi bạn đang điều chỉnh một EJB để thực hiện, đừng thay đổi ngẫu nhiên. Thay vào đó, tập trung sự chú ý của bạn vào các bước trong ứng dụng chi phí nhiều nhất về hiệu suất.
Lưu ý: Các phép đo hiệu suất thường cho thấy rằng quy trình nghiệp vụ chỉ có một hoặc hai điểm mà có thể cải tiến đáng kể. Quan sát này đã được thực hiện thường xuyên đủ để nó dẫn tới việc tạo ra quy tắc Pareto 80-20. Quy tắc đó nói rằng 80 phần trăm thời gian thực hiện của một chương trình là do 20 phần trăm của mã. Mục tiêu của bạn là xác định 20 phần trăm mã nào là đắt nhất về tài nguyên hệ thống và tập trung vào việc tối ưu hóa phần đó.