TĂNG HIỆU QUẢ
CHƯƠNG TRÌNH
VÀ PHONG CÁCH
LẬP TRÌNH
2
Efficient Programs
Trước hết là gii thut
Hãy dùng gii thut hay nht có th
Sau đó hãy nghĩ ti vic tăng tính hiu quca code
Ví d: Tính tng ca n stnhiên kếtm
void main() {
long n,m,i , sum ;
cout << ‘ vào n ‘ ; cin << n;
cout << ‘ vào m ‘ ; cin << m;
sum =0;
for(i = m ; i < = m+n; i++)
sum += i;
cout << ‘ Tổng = ‘ <<sum;
}
void main()
{
long n,m , sum ;
cout << ‘ vào n ‘ ; cin << n;
cout << ‘ vào m ‘ ; cin << m;
sum =(m + m+ n) * n / 2;
cout << ‘ Tổng = ‘ <<sum;
}
3
Dùng chỉ thị chương trình dịch
Mt scompilers có vai trò rt ln trong vic
ti ưu chương trình
Chúng phân tích sâu mã ngun và làm mi điu
“machinely” có th
Ví dGNU g++ compiler trên Linux/Cygwin cho
chương trình viết = c
g++ –O5 –o myprog myprog.c
có thci thin hiu năng t10% đến 300%
4
Nhưng...
Bn vn có ththc hin nhng ci tiến mà
trình dch không th
Bn phi loi btt cnhng chbt hp
trong code
Làm cho chương trình hiu qunht có th
Có thphi xem li khi thy chương trình chy
chm
Vy cn tp trung vào đâu đci tiến nhanh nht,
tt nht ?
5
Writing Efficient Code
Xác đnh ngun gây kém hiu qu
Dưtha tính toán - redundant computation
Chyếu
Trong các procedure
Các vòng lp : Loops