Tôi mới sử dụng ngôn ngữ D và cần đo thời gian thực hiện của thuật toán. Những lựa chọn của tôi là gì? Đã có một số giải pháp tích hợp chưa? Tôi không thể tìm thấy bất cứ điều gì kết luận trên web.Đo thời gian thực hiện bằng ngôn ngữ D
Trả lời
Một cách là sử dụng thông số dòng lệnh -profile
. Sau khi bạn chạy chương trình, nó sẽ tạo tệp trace.log nơi bạn có thể tìm thấy thời gian chạy cho từng chức năng. Điều này tất nhiên sẽ làm chậm chương trình của bạn như trình biên dịch sẽ chèn thời gian đếm mã vào mỗi chức năng của bạn. Phương pháp này được sử dụng để tìm tốc độ tương đối của các hàm, để xác định bạn nên tối ưu hóa điều gì để cải thiện tốc độ ứng dụng với nỗ lực tối thiểu.
Tùy chọn thứ hai là sử dụng std.datetime.StopWatch lớp học. Xem ví dụ trong liên kết.
Hoặc thậm chí phù hợp hơn nữa có thể là sử dụng trực tiếp chức năng std.datetime.benchmark.
Đừng quên:
- Khi điểm chuẩn sử dụng những lá cờ biên dịch DMD để đạt được tối đa tối ưu hóa
-release -O -inline -noboundscheck
. - Không bao giờ chuẩn bị gỡ lỗi bản dựng.
- Đảm bảo bạn không gọi bất kỳ mã thư viện nào bên trong các hàm được đo điểm chuẩn - Bạn sẽ đánh giá hiệu suất của việc triển khai thư viện thay vì mã của riêng bạn.
Ngoài ra, bạn có thể xem xét sử dụng các trình biên dịch LDC hoặc GDC. Cả hai đều cung cấp tối ưu hóa tốt hơn/tốc độ chạy ứng dụng hơn DMD.
Nếu thuật toán của bạn có thể được gọi từ dòng lệnh có một tiện ích tiện lợi được viết bằng D sẽ chạy chương trình của bạn một số thời gian và in ra thời gian trung bình đã lấy và tất cả các số hữu ích khác.
Nó được gọi là avgtime và nó ở đây: https://github.com/jmcabo/avgtime
std.benchmark là trong hàng đánh giá.
- 1. Thời gian đo được thực hiện bởi một hàm: clock_gettime
- 2. Đo thời gian thực hiện trong mã C++ OpenMP
- 3. đo thời gian thực hiện các cuộc gọi dòng lệnh
- 4. Có thể thực hiện một ngôn ngữ lập trình thứ hai bằng ngôn ngữ đó không?
- 5. Hỗ trợ Emacs cho ngôn ngữ D
- 6. In thời gian Epoch bằng các ngôn ngữ khác nhau
- 7. Dấu thời gian bằng ngôn ngữ lập trình C
- 8. Ngôn ngữ đồng thời
- 9. Giải phóng tài nguyên bằng ngôn ngữ D
- 10. Gọi C++ (C) từ ngôn ngữ D
- 11. Lấy Dấu thời gian của Unix trong Ngôn ngữ Go (thời gian hiện tại tính bằng giây),
- 12. Phát hiện ngôn ngữ
- 13. Dấu thời gian của jQuery Timeago: Cách chọn ngôn ngữ?
- 14. Gói R và thời gian thực hiện
- 15. Đo thời gian thực hiện xem trong phần mềm trung gian Django - ý tưởng hay?
- 16. Đo thời gian thực thi mã C (Linux)
- 17. Thời gian thực hiện trung bình
- 18. Đo thời gian truy vấn MySQL thực tế
- 19. Thời gian thực hiện bằng cách nhập bằng Python
- 20. Hiển thị hình chữ nhật đơn giản với ngôn ngữ OpenGL 3 trong ngôn ngữ D
- 21. Thay đổi ngôn ngữ cho NSLocalizedString() trong thời gian chạy
- 22. tính thời gian thực hiện trong C++
- 23. Tạo mã thời gian biên dịch trong D
- 24. thời gian thực hiện mysql
- 25. So sánh thời gian trong D
- 26. C cách đo thời gian chính xác?
- 27. Đo Java thời gian thực hiện, sử dụng bộ nhớ và CPU cho một đoạn mã
- 28. cách đo thời gian thực hiện các hàm (tự động) trong Python
- 29. Phi tiêu có cách nào để đo thời gian thực hiện cho một mã nhỏ
- 30. Đo thời gian tải trang ASP.NET
Hồ sơ không phải là những gì tôi cần trong trường hợp này, nhưng 'std.datetime.StopWatch' chính xác là những gì tôi đang tìm kiếm. – clstaudt