Làm cách nào để tôi có được thời gian chạy chương trình thông qua các chức năng thời gian của hệ thống trong Haskell? Tôi muốn đo thời gian thực hiện của toàn bộ chương trình và/hoặc chức năng riêng lẻ.Làm thế nào để có được thời gian chạy của chương trình trong Haskell
Trả lời
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:
- Basic timing (ví dụ như trong timeit package)
- Timing in cycles
Để 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?
cũng sẽ hoạt động trên Windows không? –
Các giải pháp Haskell đều hoạt động trên Windows, vâng. –
Điều gì về việc biên dịch với '-prof' và sử dụng' + RTS -s'? – ErikR
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.
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.
cảm ơn vì sự thấu hiểu! –
:set +s
thực sự gọn gàng nếu sử dụng ghci, nếu không bạn có thể sử dụng Criterion.Measurement
, xem my answer to another question with example.
- 1. Thời gian chạy chương trình đang chạy
- 2. Thời gian chạy biến của chương trình C
- 3. Cách tìm thời gian để chạy chương trình java?
- 4. MySQLNonTransientConnectionException trong chương trình JDBC tại thời gian chạy
- 5. Làm thế nào để chạy chương trình haskell này trong WinGHCi?
- 6. Làm thế nào để có được kiểu generic trong thời gian chạy?
- 7. Thời gian tạm dừng có thể xảy ra trong chương trình Haskell do thu gom rác thải như thế nào?
- 8. Làm thế nào để có được NHibernate tạo ra SQL trong mã tại thời gian chạy?
- 9. Làm thế nào để hạn chế thời gian thực hiện của chương trình khi sử dụng tiến trình con?
- 10. Làm thế nào để có được một callstack trong Haskell?
- 11. Làm thế nào để có được dấu thời gian Unix trong MySQL từ thời gian UTC?
- 12. Làm thế nào để có được thời gian thời gian trong C#?
- 13. Chạy chương trình từ PowerShell với thời gian chờ
- 14. Làm thế nào tôi có thể tải thời gian chạy AIR như một thư viện được chia sẻ trong quá trình từ một chương trình C
- 15. Làm cách nào để phân phối chương trình Python mà không yêu cầu người dùng có thời gian chạy Python?
- 16. Làm thế nào để có được đường dẫn chạy chương trình java
- 17. Làm thế nào để chạy chương trình C trên Ubuntu?
- 18. Làm thế nào để có được quyền kiểm soát của một đống 5GB trong Haskell?
- 19. Làm thế nào để có được những DiscriminatorValue tại thời gian chạy
- 20. Làm thế nào để chạy một tiến trình với thời gian chờ trong Bash?
- 21. Làm thế nào để tìm ra ID ứng dụng lập trình trong thời gian chạy?
- 22. Làm thế nào để có được đường dẫn thực sự của ứng dụng Java trong thời gian chạy?
- 23. Haskell: Làm thế nào để đường ống nội dung của một tay cầm vào nhau trong thời gian thực
- 24. Làm thế nào để thay đổi AndroidManifest trong thời gian chạy?
- 25. Làm thế nào để tìm tên của hàm hiện tại trong thời gian chạy?
- 26. Làm cách nào để đặt thời gian sửa đổi của một tệp theo chương trình?
- 27. Làm thế nào để thời gian thực hiện chương trình Java tốc độ
- 28. Đầu ra của chương trình và thời gian Python
- 29. Làm thế nào để chạy chương trình được viết cho trình biên dịch cũ?
- 30. Làm thế nào để có được ngày và thời gian của khách hàng trong ASP.NET?
Xem thêm http://stackoverflow.com/questions/1516808/writing-a-time-function-in-haskell –