小编Ste*_*han的帖子

如何减少Haskell的并行化开销?

我试图了解Haskell的并行化性能.

我有一个长列表(长度> 1000),我正在使用parallel并行评估parMap.

以下是+RTS -s用于单个线程的完整统计信息输出(编辑:完整统计输出):

        54,248,802,288 bytes allocated in the heap
           324,451,424 bytes copied during GC
             2,970,272 bytes maximum residency (4 sample(s))
                52,064 bytes maximum slop
                   217 MB total memory in use (1 MB lost due to fragmentation)

                                          Tot time (elapsed)  Avg pause  Max pause
        Gen  0       251 colls,     0 par    1.45s    1.49s     0.0059s    0.0290s
        Gen  1         4 colls,     0 par    0.03s    0.05s     0.0125s    0.0319s

        TASKS: 4 (1 bound, 3 peak workers (3 total), using -N1) …
Run Code Online (Sandbox Code Playgroud)

parallel-processing performance haskell

12
推荐指数
1
解决办法
236
查看次数

Haskell的Lens库中ix和element之间有什么区别

在Haskell的镜头库中,ix并且element都可以使用Int an来例如在某个索引处读取或写入列表元素,就像这样

ghci> [1..10] ^? ix 4
Just 5
ghci> [1..10] & ix 4 .~ 1
[1,2,3,4,1,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

同样地:

ghci> [1..10] ^? element 4
Just 5
ghci> [1..10] & element 4 .~ 1
[1,2,3,4,1,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

element和之间有什么区别ix

haskell haskell-lens

8
推荐指数
1
解决办法
256
查看次数

使用haskell pipes-bytestring逐行迭代文件

我正在使用管道库,需要String使用ASCII编码将ByteString流转换为线流(即).我知道还有其他库(Pipes.Text和Pipes.Prelude)可能让我更容易从文本文件中产生行,但由于其他一些代码,我需要能够String从Producer中获取行ByteString.

更正式地说,我需要将a转换Producer ByteString IO ()为a Producer String IO (),从而产生线条.

我相信,这一定是一个班轮对于有经验的管道,程序员,但我至今没能成功地通过所有的黑客FreeT,并Lens在管道-字节串-trickery.

任何帮助深表感谢!

斯蒂芬

haskell-pipes

5
推荐指数
1
解决办法
405
查看次数

如何从mercurial存储库中安全地禁用/删除largefiles目录?

在过去,我一直在使用mercurial中的largefiles扩展来将数据与我一直在处理的代码一起保存.我认为这是一个错误,我想删除"largefiles"目录(8GB).我们的网络用户目录限制为10 GB,我需要空间.我很久没有使用任何大文件了.当他们永远消失时,我不会想念他们.

所以我的问题是

  1. 我可以删除.hg下的largefiles目录而不损坏repo吗?
  2. 如果我这样做,即使丢失了一些大型数据文件,我能否查看旧代码?
  3. 我应该从该repo的所有克隆中删除这些文件,以避免再次使用来自另一个克隆的largefiles污染所有repos吗?

version-control mercurial large-files mercurial-extension

4
推荐指数
1
解决办法
3128
查看次数