2011-05-11 45 views

Trả lời

11

Giả sử bạn không chỉ muốn để đo tổng thời gian chạy chương trình của bạn, như vậy:

$ time ./A 

Sau đó, bạn có thể thời gian một tính toán một số cách trong Haskell:

Để có thêm phép đo âm thanh thống kê, hãy xem xét

Cuối cùng, trong mọi trường hợp, bạn cần suy nghĩ về đánh giá lười biếng: bạn có muốn đo lường chi phí đánh giá đầy đủ bất kỳ dữ liệu nào bạn tạo hoặc chỉ với nhà xây dựng ngoài cùng không?

+0

cũng sẽ hoạt động trên Windows không? –

+0

Các giải pháp Haskell đều hoạt động trên Windows, vâng. –

+0

Điều gì về việc biên dịch với '-prof' và sử dụng' + RTS -s'? – ErikR

19

1) Nếu bạn muốn chuẩn bị thứ gì đó, hãy sử dụng gói criterion.

2) Nếu bạn muốn để thời gian một hàm và tích cực bạn đã kiểm soát đối với sự lười biếng khi cần thiết, sau đó chỉ cần sử dụng Data.Time.getCurrentTime từ gói time .:

import Data.Time 
... 
    start <- getCurrentTime 
    runOperation 
    stop <- getCurrentTime 
    print $ diffUTCTime stop start 

Một bao bì áo mưa của mô hình trên có thể được được tìm thấy trong gói timeit.

3) Nếu bạn thực sự muốn thời gian chạy của chương trình chỉ xảy ra được viết bằng Haskell thì hãy sử dụng tiện ích của bạn time. Đối với hầu hết các hệ thống POSIX (Mac, Linux) chỉ cần chạy:

$ time ./SomeProgram 

Và nó sẽ báo cáo người dùng, tường và thời gian hệ thống.

3

Tôi không chắc nó chính xác như thế nào, nhưng việc sử dụng :set +s trong ghci sẽ hiển thị thời gian và không gian được sử dụng cho các tính toán tiếp theo.

+0

cảm ơn vì sự thấu hiểu! –

Các vấn đề liên quan