配置文件Haskell,而不安装为所有依赖关系安装性能分析库

我想介绍我在Haskell写的程序.

在编译时,我被告知,我没有安装某些依赖关系(例如标准)的分析库,并且中止.

我对这些依赖关系的部分内容没有兴趣;从main调用代码甚至不使用它们.

如何配置我的应用程序,而不安装不需要的分析库,而不删除所有这些依赖项?

使用剖析来编制所有内容的好方法是使用cabal沙箱.它允许您仅为一个应用程序设置沙箱,因此您不必重新安装整个〜/ .cabal前缀.您需要最新版本的Cabal,所以运行cabal update&&首先安装cabal-install.

一旦你初始化了一个沙盒,创建一个文件cabal.config来包含必要的指令(在你的情况下,library-profiling:True; executable-profiling:True也可以方便).

这样做的一个副作用是您可以使用不需要全局安装的依赖项来测试代码,例如,实验版本或过期版本.

编辑:btw,我不认为你需要启用配置文件以使标准工作.无论如何,它对我来说没有启用分析功能.只需编写一个主模块,其中包含main = defaultMain基准,其中基准类型为[Benchmark],即您编写的基准列表.

然后,您可以编译该文件(比如我们称之为ghc -make -o bench benchmarks.hs的benchmarks.hs,并使用适当的参数运行程序./bench(有关详细信息,请参阅标准文档)一个很好的默认参数就是说./bench -o benchmarks.html会产生类似于this one的漂亮报告)

相关文章

适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题...
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结...
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容...