Professional Documents
Culture Documents
Nghiên C U Bài Báo Performance and Energy Optimization
Nghiên C U Bài Báo Performance and Energy Optimization
10 ENERGY OPTIMIZATION
Thực hiện: Nhóm 10
Vũ Hoài Anh – CT040205
Nguyễn Văn Thắng – CT040245
Đào Thị Hằng Nga – CT040233
Nội dung trình bày
Tổng quan về bài báo “Performance and energy optimization”
Những yếu tố nào ảnh hưởng đến hiệu suất và mức độ tiêu thụ điện năng của các ứng dụng di động?
Những tiếp cận nào đã được đề xuất để tối ưu hiệu suất và năng lượng của ứng dụng Android?
Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức tiêu thụ điện năng trên các ứng dụng
Android gần đây?
Quá trình nghiên cứu và kết quả do bài báo đưa ra
01 Những khía cạnh nào ảnh hưởng đến hiệu suất và mức tiêu thụ năng lượng
của các ứng dụng di động ?
Þ Bài nghiên cứu sắp xếp mức độ liên quan và phù hợp => có cái nhìn tổng quát để
phân tích
Quá trình nghiên cứu và kết quả do bài báo đưa ra
Những khía cạnh nào ảnh hưởng đến hiệu suất và mức tiêu thụ năng
01
lượng của các ứng dụng di động ?
02 Những tiếp cận nào đã được đề xuất để tối ưu hiệu suất và năng lượng ứng
dụng android ?
- Tránh sử dụng màn hình và CPU để tránh tiêu tốn năng lượng
=> giảm dần độ sáng màn hình + cải tiến DFS => giảm tổng tiêu thụ pin 10%
=> 75 % người dùng không thấy bất thường => không hiệu quả với game
=> giảm thời gian hoạt động của mạng và tiêu thụ năng lượng
=> wifi được khuyên dùng khi trao đổi các dữ liệu lớn
Quá trình nghiên cứu và kết quả do bài báo đưa ra
02 Những tiếp cận nào đã được đề xuất để tối ưu hiệu suất và năng lượng ứng
dụng android ?
- Hệ thống cảm biến cho phép biết người dùng đang ở trong nhà hay ngoài trời, đang di chuyển
hay không, dựa vào các hành vi khác nhau => thiết lập các chế độ khác nhau
=> VD: khi ở nhà thì GPS sẽ tắt và CPU sẽ giảm xung nhịp để tiết kiệm pin
=> viết chương trình hoàn toàn hoặc một phần bằng native code
Quá trình nghiên cứu và kết quả do bài báo đưa ra
Biểu đồ mức tiêu thụ điện năng khi ứng dụng vừa khởi chạy
Quá trình nghiên cứu và kết quả do bài báo đưa ra
Sử dụng Broadcast Receive để lắng nghe tình trạng pin thay đổi Đăng ký/ Hủy đăng ký receive trong onResume / onPause
Sử dụng Location Listener để lắng nghe các thay đổi về vị trí Hủy bỏ Location Listener bằng phương thức removeUpdates()
Quá trình nghiên cứu và kết quả do bài báo đưa ra
Quá trình nghiên cứu và kết quả do bài báo đưa ra
Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
03
năng lượng của các ứng dụng android gần đây?
Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
03 năng lượng của các ứng dụng android gần đây?
Phép đo hiệu suất
public void onClick(View v) {
long startTime = System.nanoTime();
String result = sangSNT();
System.out.println( "Total Time: " +
(System.nanoTime() - startTime) / 1000000);
tv.setText("Total Time Java: " +
(System.nanoTime() - startTime) / 1000000);
}
});
03 Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
năng lượng của các ứng dụng android gần đây?
Phép đo năng lượng
PowerTutor
Quá trình nghiên cứu và kết quả do bài báo đưa ra
03 Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
năng lượng của các ứng dụng android gần đây?
Ứng dụng để so sánh thuật toán
Quá trình nghiên cứu và kết quả do bài báo đưa ra
ANDROID NDK
Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
03
năng lượng của các ứng dụng android gần đây?
Phép tính toán số nguyên
- Android 2.3 và 2.1 : native code nhanh hơn java 3 lần
- Thiết bị thực tế: native code nhanh hơn 2-3 lần so với java
- Android 2.2: native code gần với java
Hoạt động truy cập bộ nhớ (sử dụng thuật toán bubble sort)
- Native code nhanh hơn java 30 lần
Xử lý chuỗi
- Hiệu suất giảm đáng kể khi sử dụng native code
=> do Java và C sử dụng hệ thống mã hóa ký tự khác nhau
=> native code yêu cầu kiểu chuyển đổi có tác động tiêu cực đến hiệu suất tổng
Quá trình nghiên cứu và kết quả do bài báo đưa ra
Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
03
năng lượng của các ứng dụng android gần đây?
Phân tích kết quả tiêu thụ năng lượng
-Hầu hết kết quả thu được cho thấy mối tương quan
giữa thời gian thực hiện và mức tiêu thụ năng lượng.
-Đa phần, năng lượng tiêu thụ tỷ lệ thuận với thời gian
thực hiện.
-Nhưng độ chính xác của công cụ đo không thể xác
định => có một số sai lệch trong kết quả.
-Khi nói đến kết quả tiêu thụ năng lượng, Java và Integer calculations: prime numbers
native code dường như ngang nhau.
Quá trình nghiên cứu và kết quả do bài báo đưa ra
Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
03
năng lượng của các ứng dụng android gần đây?
Việc sử dụng native code ảnh hưởng như thế nào đến hiệu suất và mức sử dụng
03
năng lượng của các ứng dụng android gần đây?
C
JAVA
Kết quả thực tế khi thực nghiệm
Java Native
Kết quả thực tế khi thực nghiệm
C
JAVA
Kết quả thực tế khi thực nghiệm
Java Native
Kết quả thực tế khi thực nghiệm
C
JAVA
Kết quả thực tế khi thực nghiệm
Java Native
Kết quả thực tế khi thực nghiệm
THỐNG KÊ SO SÁNH HIỆU SUẤT THỰC HIỆN GIỮA JAVA VÀ NATIVE CODE
Fibonacci
Kết quả thực tế khi thực nghiệm
THỐNG KÊ SO SÁNH HIỆU SUẤT THỰC HIỆN GIỮA JAVA VÀ NATIVE CODE
Bubble sort
Kết quả thực tế khi thực nghiệm
THỐNG KÊ SO SÁNH HIỆU SUẤT THỰC HIỆN GIỮA JAVA VÀ NATIVE CODE
Prime
Kết quả thực tế khi thực nghiệm
Java Native
Kết quả thực tế khi thực nghiệm
Thuật toán
Fibonacci
Kết quả thực tế khi thực nghiệm
Bubble sort
Kết quả thực tế khi thực nghiệm
Kết Luận
Tất cả các thí nghiệm đều liên quan đến chủ đề chính của bài báo này: so sánh
hiệu suất và hiệu quả năng lượng giữa Java và Native code trên Android.
Việc sử dụng native code là hợp lý nếu một ứng dụng liên quan đến xử lý số
lượng lớn dữ liệu và thực hiện các phép tính số nguyên, hoạt động bộ nhớ cường
độ cao hoặc đệ quy sâu
Kết quả từ các phép đo năng lượng cho thấy mối tương quan chặt chẽ giữa thời
gian thực hiện và mức tiêu thụ năng lượng.