Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Một cách khác lấy thời gian thực
Nội dung xem thử
Mô tả chi tiết
Một cách khác lấy thời gian thực
Nguyễn Xuân Tài
Khi viết một chương trình xong,điều quan trọng nhất là nó phải chạy đúng và thứ hai là
thời gian thực hiện. Vìvậy cần phải theo dõi thời gian chạy của chương trình và khả năng
tối ưu nó. Nhưchúng ta đã biết ở các số báo trước có giới thiệu một số cách lấy thời
gianthực của máy tính để nhằm theo dõi và đánh giá hiệu quả của chương trình.
Nhưng các cách được nêu đều cónhược điểm.
Nhược điểm của cách 1 đã được nêucụ thể còn nhược điểm chính của cách 2 là phải dùng
4 byte bộ nhớ cho biến Timetrong dòng lệnh sau:
Var
Time: longint absolute 0: $ 46c;
Nhiều khi trong lúc lập trình bạnphải thốt lên: Giá như có thêm 2 biến đếm nữa thì hay biết
mấy!. Thưa cácbạn, không có lý do gì để cho biến Time giữ khư khư lấy 4 byte quý giá
củachúng ta nữa sau khi bạn đọc xong bài này. Vì chúng ta có thể lấy thời gianbằng một
cách rẻ tiền hơn nhiều. Vâng, chúng tôi muốn nói đến mảng Meml.
Có một điều xưa như trái đấtrằng: hệ điều hành dành bốn byte bộ nhớ bắt đầu từ địa chỉ
$0000:$46c để lưutrữ nhịp làm việc của máy tính. Và vấn đề nằm ở chỗ đó mảng Meml là
mảng chophép ta truy xuất bốn byte bộ nhớ bắt đầu từ một địa chỉ xác định. Vì thế tạisao
ta lại khai báo một biến time nữa Chắc chắn đến đây các bạn đã hiểu cáchlàm của tôi. Nếu
còn chỗ nào chưa được rõ, xin bạn hãy tham khảo chương trìnhngắn sau:
Uses crt;
Var
count:longint;
timesaved:longint;
begin
clrscr;
timesaved:=meml[0:$46c];
for count:=1 to 10000000 do