Để thực hiện phép biến đổi mô hình tự động nhằm tối ƣu hóa, trong phần này chúng tôi tập trung xây dựng ứng dụng tối ƣu mức mô hình cài đặt một số phép biến đổi. Trong mô hình dữ liệu, các thành phần dữ liệu và các hàm có thêm thuộc tính tần số truy xuất hoặc thực hiện. Tần số này sẽ đƣợc ngƣời thiết kế ƣớc lƣợng. Mô hình dữ liệu đƣợc sử dụng làm đầu vào cho chƣơng trình tối ƣu để thực hiện các phép biến đổi. Trong chƣơng trình tối ƣu, chúng tôi cài đặt phép biến đổi phân chia cấu trúc dựa trên thuật toán phân cụm K-mean với số phân cụm tùy chọn. Số phân cụm chính là số cấu trúc đƣợc phân chia từ cấu trúc ban đầu. Chƣơng trình tối ƣu phân tích và chuyển từ mô hình trực quan sang biểu diễn toán học của mô hình (dạng tập hợp) dựa trên T4. Sau đó thực hiện phép biến đổi để đạt đƣợc mô hình tối ƣu dạng tập hợp. Từ mô hình tối ƣu dạng tập hợp, có thể sinh ngƣợc lại mô hình trực quan hoặc sinh mã.
Hình 3-14. Chƣơng trình tối ƣu
Chúng tôi tiến hành cài đặt hàm đánh giá hiệu năng và hàm đánh giá bộ nhớ ở trên vào chƣơng trình tối ƣu để đánh giá hiệu năng và bộ nhớ chiếm dụng, từ đó đƣa ra cấu trúc có hiệu năng tốt hơn hoặc bộ nhớ chiếm dụng tốt hơn. Ứng dụng tối ƣu sẽ nhận đầu vào là thông tin đặc tả mô hình và bộ tham số tƣơng ứng với mô hình đã đƣợc trích xuất tự động từ framework DSL và T4, ở đây là tên và tần suất truy suất các thành phần dữ liệu. Sau đó chƣơng trình tối ƣu thực hiện các phép biến đổi và tính toán hiệu năng và bộ nhớ chiếm dụng cho mô hình ban đầu và mô hình tối ƣu theo công thức đã cài đặt nêu ở trên, tiến hành so sánh để lựa chọn mô hình tốt hơn. Hình 3-14, 3-15 là giao diện của chƣơng trình tối ƣu.
Hình 3-16. Biểu đồ so sánh tối ƣu hiệu năng, bộ nhớ chiếm dụng của biểu đồ lớp
Kết quả từ biểu đồ so sánh của ứng dụng tối ƣu chúng ta sẽ lựa chọn đƣợc cấu trúc có hiệu năng tốt hơn hoặc bộ nhớ chiếm dụng tốt hơn. Hình 3-16 là giao diện biểu đồ so sánh của chƣơng trình tối ƣu.
3.5.1 Chuyển đổi mô hình để tối ƣu hiệu năng
Để thực hiện tối ƣu hiệu năng dựa trên chuyển đổi mô hình, chúng ta có thể cài đặt các phép chuyển đổi đó là thu gọn kiểu dữ liệu, chuyển các tham số thành các thành phần dữ liệu và chuyển các thành phần dữ liệu cũng nhƣ các phƣơng thức động thành tĩnh. Trong phép chuyển đổi thứ nhất, chƣơng trình sẽ căn cứ vào miền giá trị của các thành viên dữ liệu để chuyển về kiểu nhỏ nhất có thể. Hai phép chuyển đổi sau đƣợc thực hiện theo ràng buộc về tần số sử dụng. Chỉ các phƣơng thức nào có tần số sử dụng lớn hoặc bằng hơn tần số ngƣỡng mới đƣợc thực hiện phép chuyển đổi thứ hai. Chỉ các thành viên dữ liệu và phƣơng thức có tần số lớn hơn hoặc bằng tần số ngƣỡng mới đƣợc thực hiện phép chuyển đổi thứ ba.
3.5.2 Chuyển đổi mô hình để tối ƣu bộ nhớ chiếm dụng
Để thực hiện tối ƣu bộ nhớ chiếm dụng dựa trên chuyển đổi mô hình, chúng ta có thể cài đặt ba phép chuyển đổi là thu gọn kiểu dữ liệu, phân chia và gộp cấu trúc. Phép chuyển đổi đầu tiên cũng đƣợc thực hiện nhƣ trong phần tối ƣu hiệu năng. Hai phép biến đổi sau đƣợc thực hiện dựa trên tần số sử dụng. Trong mô hình dữ liệu, các thành phần dữ liệu và các hàm có thêm thuộc tính tần số truy
xuất hoặc thực hiện. Tần số này sẽ đƣợc ngƣời thiết kế ƣớc lƣợng. Mô hình dữ liệu đƣợc sử dụng làm đầu vào cho chƣơng trình tối ƣu để thực hiện các phép biến đổi. Trong chƣơng trình tối ƣu, chúng tôi cài đặt phép biến đổi phân chia cấu trúc dựa trên thuật toán phân cụm K-mean với số phân cụm tùy chọn. Số phân cụm chính là số cấu trúc đƣợc phân chia từ cấu trúc ban đầu. Chƣơng trình tối ƣu phân tích và chuyển từ mô hình trực quan sang biểu diễn toán học của mô hình (dạng tập hợp) dựa trên T4. Sau đó thực hiện phép biến đổi để đạt đƣợc mô hình tối ƣu dạng tập hợp. Từ mô hình tối ƣu dạng tập hợp, có thể sinh ngƣợc lại mô hình trực quan hoặc sinh mã.
Tổng kết chƣơng
Chương này chúng tôi đã phát triển phương pháp tối ưu phần mềm nhúng dựa trên biến đổi mô hình và xây dựng chương trình tối ưu cũng như công cụ hỗ trợ. Ngoài ra chúng tôi đã triển khai cách tiếp cận mới để tối ưu phần mềm nhúng trong giai đoạn thiết kế theo chuyển đổi mô hình dựa trên DSL và T4. Chúng tôi bổ sung tham số vào hàm đánh giá hiệu năng từ mô hình phần mềm, xây dựng chương trình cài đặt hàm đánh giá hiệu năng và bộ nhớ chiếm dụng. Từ việc nghiên cứu các phép chuyển đổi, chúng tôi đưa ra một số phương pháp tối ưu kết hợp giữa các phép biến đổi.
4 CHƢƠNG 4 THỰC NGHIỆM