1. Trang chủ
  2. » Công Nghệ Thông Tin

Một cách khác lấy thời gian thực

2 416 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Một cách khác lấy thời gian thực
Tác giả Nguyễn Xuân Tài
Trường học Trường Đại Học
Thể loại bài viết
Định dạng
Số trang 2
Dung lượng 28 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một cách khác lấy thời gian thực

Trang 1

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

Trang 2

end;

writeln(Total timeused:,((meml[0:$46c]-timesaved)/18.21):10:10,seconds.);

write(Total CPU clock:,meml[0:$46c]-timesaved,.);

readln;

end

Ở đây, tôi khuyến nghị lấy mộtgiây là 18.21 nhịp đồng hồ để tăng độ chính xác Nếu muốn có thể lấy chính xáchơn nữa nhưng thiết nghĩ như vậy là đủ và lại dễ nhớ

Nguyễn Xuân Tài

Ngày đăng: 10/09/2012, 14:56

TỪ KHÓA LIÊN QUAN

w