草庐IT

haskellers

全部标签

java - Haskell 中的 Android 应用程序

您好,我知道有类似的问题。但也许这方面有任何更新或新库。我在寻找什么:编写android的最佳实践Haskell中的应用程序。我知道在c#(monodroid)/java有数百万样本。你知道写关于android+Haskell的博主、文章吗我看到了这些有用的链接:HaskellinterpreteronAndroid?RunningaHaskellprogramontheAndroidOShttp://news.ycombinator.com/item?id=1251408我知道我可以使用针对ndkgcc的GHCJHC将Haskell转换为C并使用NativeActivity怎么样?h

使用 -O2 编译 Haskell 会显着增加内存使用量

这个简单的程序在没有使用ghc标志的情况下编译时在恒定的内存空间中运行:importData.Listfx=x*xga=foldl'(+)(fa)[1..(1073741824-1)]main=doputStrLn$show$foldl'(+)0$mapg[0,1]使用ghc-O2编译时,内存使用量超过了系统资源(8GB)。将主要更改为:main=doputStrLn$show$foldl'(+)0[g0,g1]缓解了问题,因此它似乎与map有关。谁能解释一下这种行为以及如何解决它?GHC版本是:GlasgowHaskell编译器,版本7.4.1,由GHC版本7.4.1引导的阶段2

haskell中构造函数的内存使用情况

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:MemoryfootprintofHaskelldatatypes在解决组合问题时,我经常将解决方案表示为位串,例如。1010100010110111000110...你懂的。我想当我使用[Int]作为位串时,无论实际数字有多大,Int总是花费相同数量的内存(因为Int它是有界的,与Integer相比,因为计算机只记住位表示,而String会占用更多空间据我所知。当时我的想法是使用数据类型dataBits=Empty|ZeroBits|OneBitsderiving(Eq,Ord,Show)但是与Int相比,

Haskell http-conduit web-scraping daemon 崩溃并出现内存不足错误

我在Haskell中编写了一个守护程序,它每5分钟从网页中抓取一次信息。该守护程序最初运行了大约50分钟,但随后因内存不足(请求1048576字节)而意外死亡。每次我运行它时,它都会在相同的时间后死亡。将其设置为仅休眠30秒,它反而在8分钟后死亡。我意识到抓取网站的代码非常低效(从sleep时的大约30M到解析9M的html时的250M),所以我重写了它,现在它在解析时只使用了大约15M的额外内存。以为问题已解决,我连夜运行守护程序,当我醒来时,它实际上使用的内存比那天晚上少。我以为我已经完成了,但在它启动大约20小时后,它又因同样的错误而崩溃。我开始研究ghc分析,但我无法让它发挥作

performance - Haskell 的局部属性是什么?

现代CPU已经过优化,因此访问和修改内存中的同一位置(时间局部性)以及内存中的连续位置(空间局部性)是非常快速的操作。现在,由于Haskell是一种纯粹不可变的语言,你自然不能覆盖现有的内存块,这可能会使像foldl这样的东西比带有a的for循环慢得多连续访问的结果变量将在C中。Haskell是否在内部采取任何措施来减轻这种性能损失?总的来说,它关于局部性的属性是什么? 最佳答案 一般规则是,对于“普通”Haskell编程,您几乎无法(如果有的话)控制内存布局和内存位置。但是,确实存在许多允许此类控制的更高级功能,以及在这些功能之上

haskell - 检查haskell中的内存使用情况

我正在创建一个实现某种缓存的程序。我需要使用尽可能多的内存,为此我需要做两件事:检查系统中仍有多少可用内存(仅限RAM,而非SWAP)检查我的应用已经使用了多少内存。我需要一个独立于平台的解决方案(Linux、Windows等)。使用这两条信息,我将减小或放大缓存的大小。如何在Haskell中获取这些信息?有没有可以提供这些信息的软件包? 最佳答案 我无法立即看到如何以便携方式执行此操作。但是,GHC确实有“弱指针”。(请参阅System.Mem.Weak。)如果您创建项目并通过弱指针(仅)卡在它们上,那么垃圾收集器将自动开始删除项

c++ - C++/Haskell 中的精确算术和惰性列表性能

在阅读thispaper后,我最近遇到了精确实数运算这一主题。和thispaper.我找到了许多讨论使用有符号数字流实现精确算术的论文。对任意精度使用无限流可以在函数式语言(如Haskell)中使用惰性列表实现很好的实际实现。但是,讨论函数式语言中此类实现的论文似乎得出的结论是性能非常差。现在,我意识到与标准浮点表示相比,精确的非硬件实现通常具有相对较差的性能,但我有兴趣以命令式语言(特别是C++)和运算/函数的集合(算术运算、三角函数、exp、log等)。我的问题:有符号数字/惰性流表示是否存在固有的缓慢导致性能不佳的问题,还是Haskell?是什么让它变慢?是否有可能在C++中使用

c++ - 将 C 库与 Haskell 库静态链接

我有一个旨在创建一些C++绑定(bind)的Haskell项目。我已经编写了C包装器并将它们编译成一个独立的静态链接库。我想编写Haskell绑定(bind)以静态链接到C包装器,这样我就不必单独分发C包装器,但我似乎无法让它工作并希望得到一些帮助。我将C库指定为额外库,但我的cabalbuildstep似乎没有将其添加到编译命令中。我创建了一个小项目来说明这一点(http://github.com/deech/CPlusPlusBindings)。它包含一个小的C++类(https://github.com/deech/CPlusPlusBindings/tree/master/cp

c++ - Haskell 可以像 Clang/GCC 一样优化函数调用吗?

我想问一下Haskell和C++编译器是否可以以相同的方式优化函数调用。请看下面的代码。在以下示例中,Haskell比C++快得多。我听说Haskell可以编译到LLVM并且可以通过LLVMchannel进行优化。此外,我听说Haskell在后台进行了一些重大优化。但是以下示例应该能够以相同的性能工作。我想问:为什么我在C++中的示例基准比在Haskell中慢?是否可以进一步优化代码?(我使用的是LLVM-3.2和GHC-7.6)。C++代码:#include#includeintb(constintx){returnx+5;}intc(constintx){returnb(x)+1;

c++ - 使用 haskell 构建动态库并在 C++ 中使用它

我想构建一个包含haskell函数的动态库。我在linux上工作,想从C++代码中调用这个动态库。我使用了http://wiki.python.org/moin/PythonVsHaskell的示例并有以下文件:Test.hs:{-#LANGUAGEForeignFunctionInterface#-}moduleTestwhereimportForeign.C.Typeshsfun::CInt->IOCInthsfunx=doputStrLn"HelloWorld"return(42+x)foreignexportccallhsfun::CInt->IOCIntmodule_init