Một cách hay để vượt qua việc phải biên dịch mọi thứ với lược tả là sử dụng hộp cát cabal. Nó cho phép bạn thiết lập một sandbox cho một ứng dụng duy nhất, và do đó bạn sẽ không phải cài đặt lại toàn bộ tiền tố ~/.cabal
của mình. Bạn sẽ cần một phiên bản Cabal gần đây, vì vậy hãy chạy trước tiên cabal update && cabal install cabal-install
.
Khi bạn khởi tạo một sandbox, tạo một tệp cabal.config
để bao gồm các chỉ thị cần thiết (trong trường hợp của bạn library-profiling: True
; executable-profiling: True
cũng có thể có ích.)
Một tác dụng phụ của việc này là bạn có thể kiểm tra mã của bạn với các phụ thuộc không cần cài đặt trên toàn cầu, ví dụ như các phiên bản thử nghiệm hoặc các phiên bản lỗi thời.
EDIT: btw, tôi không nghĩ bạn cần bật hồ sơ cho criterion
để hoạt động. Trong mọi trường hợp, nó hoạt động cho tôi mà không cần kích hoạt tính năng hồ sơ. Chỉ cần viết mô-đun Main
có chứa main = defaultMain benchmarks
trong đó benchmarks
có loại [Benchmark]
, nghĩa là danh sách các điểm chuẩn mà bạn đã viết.
Sau đó bạn biên dịch tập tin đó (chẳng hạn, chúng tôi gọi nó benchmarks.hs
với ghc --make -o bench benchmarks.hs
, và chạy chương trình, ./bench
với các đối số thích hợp (tham khảo tài liệu tiêu chuẩn để biết chi tiết. Một đối số mặc định tốt là, nói ./bench -o benchmarks.html
mà sẽ tạo ra một tiện lợi báo cáo tương tự như this one)
Nguồn
2012-08-31 09:22:00
Bạn không thể. Chỉ cần cài đặt chúng, vấn đề là gì? –
1) Tôi không cần chúng, 2) Cài đặt chúng cực kỳ tẻ nhạt: http://stackoverflow.com/questions/1704421/cabal-not-install-dependencies-khi-cần-profiling-thư viện – nh2
Trong khi tôi đồng ý rằng nó tẻ nhạt, yêu cầu của bạn mà bạn không cần chúng rõ ràng là sai. –