Bảng 2.3: Thống kê % sử dụng CPU đã kiểm thử trên Motorola moto X
Ứng dụng Trước khi tối ưu Sau khi tối ưu
AndyChat (app) 0.39 / 0.5 / 0.59 0.24 / 0.18 / 0.29 Thegot2run (game) 1.28 / 1.16 /0.74 0.91 / 0.79 / 0.54 myFacebook (app) 0.2 / 0.16 / 0.25 0.17 / 0.18 / 0.23 ESSSpinner (SQLlite) 0.28 / 0.28 / 0.17 0.24 / 0.25 / 0.21 Play Sách (web) 0.86/3.04/6.97 0.62 / 2.14/ 4.68
Bảng 2.4: Thống kê % sử dụng CPU đã kiểm thử trên HTC One XL
Ứng dụng Trước khi tối ưu Sau khi tối ưu
AndyChat 0.72 / 0.9 / 1.0 0.32 / 0.29 / 0.4 Thegot2run 1.99 / 2.11 / 1.54 1.26 / 1.27 / 0.92 myFacebook 0.31 / 0.32 / 0.42 0.3 / 0.29 / 0.43 ESSSpinner 0.48 / 0.39 / 0.22 0.42 / 0.36 / 0.21 Play Sách (web) 0.76/3.25/6.27 0.57 / 2.10/5.68
Qua số liệu của Bảng 2.3 và Bảng 2.4 cho thấy việc áp dụng các kỹ thuật tối ưu mã nguồn và tái cấu trúc mã nguồn giúp làm tăng hiệu năng của ứng dụng và thiết bị; tương ứng với mỗi ứng dụng mức tỷ lệ sử dụng CPU của ứng dụng là giảm xuống như ứng dụng AndyChat giảm 60%, hay Thegot2run giảm 40%, Play Sách 10% ở mốc 10 phút. Tuy nhiên, nếu có nhiều ứng dụng được tối ưu và được cài đặt trên thiết bị đó thì kết quả tiết kiệm sử dụng năng lượng (pin) sẽ là rất đáng kể và có ý nghĩa.
Bảng 2.5 – Thống kê % sử dụng CPU của kết quả kiểm thử trên HTC One XL cho từng luật
Ứng dụng Luật Trước khi tối Sau khi tối ưu
ưu
Estate AvoidEmptyIf (luật 28) 0.28/0.22/0.14 0.27/0.19/0.14 Estate AvoidMethodCallsInLoop (luật 0.34/0.13/0.12 0.08/0.07 /0.10
32)
Who is UseStringLength- 0.51/0.17/0.08 0.09/0.10 /0.08 millionaire CompareEmptyString (luật 11)
Estate AvoidObjectInstantiation- 0.38/0.12/0.08 0.32/0.11 /0.07 InLoops(luật 33)
Book ConstantExpression (A 0.43/0.12/0.08 0.11/0.09 /0.07 management constant expression can be
evaluated (luật 8))
Book DefineInitialCapacities (luật 0.14/0.09/0.06 0.0 /0.04 /0.05 management 47)
Who is AvoidSynchronized- 0.22/0.07/0.06 0.01/0.08 /0.07 millionaire MethodsInLoop (luật 44)
(0.28 /0.22/0.14: the average % of CPU being used in the last 1-minute, 5 minutes and 10 minutes)
Bảng 2.5 cho biết CPU được sử dụng khi mỗi luật được triệu gọi. Tùy thuộc vào các luật cụ thể mà tỷ lệ giảm sau 01 phút sử dụng CPU là rất cao, chẳng hạn như AvoidMethodCallsInLoop,UseStringLength CompareEmptyString, DefineInitialCa- pacities, ... Tương ứng với từng chương trình, tất cả các luật trong Bảng 2.2 được đưa ra để tìm ra các vi phạm của chương trình có thể giúp các lập trình viên tối ưu hóa mã nguồn để cải thiện hiệu suất cho các ứng dụng. Hơn nữa, nếu có nhiều hơn một ứng dụng được tối ưu hóa, việc giảm mức tiêu thụ năng lượng sẽ đáng kể hơn nhiều.