小编Fre*_*Vds的帖子

具有两个不同父提交的两个提交之间的差异

当我对代码运行测试时,我总是在 git 中拍摄代码快照(使用 stash create)并将提交 ID 附加到测试(确保将其放在引用日志中以防止其被垃圾收集)。这样我以后就可以轻松地检查到底是什么代码导致了该测试输出。

但通常,我想将旧代码与当前版本的代码进行比较。问题是我当前版本的代码已经基于 master 分支重新构建,因此 git diff 将显示数百次提交的组合差异。我目前所做的是两个 git 显示,然后是正常(非 git)差异,但这有一个巨大的缺点,即对于具有不同行号的每一行,该行号被认为是不同的。

那么,当第二次提交已重新设置基础时,是否有一种简单的方法可以在两次提交之间进行比较?所以基本上,我正在寻找类似于内部重新调整第一个提交的东西,显示差异,然后摆脱该提交的内部重新调整版本。当然,如果变基失败了,那就这样吧,但在大多数情况下,变基对我来说只是工作,所以这在大多数情况下仍然有用。

我想我可以自己写这个,但这似乎是一个常见问题,所以我想知道这样的东西是否已经存在?

git

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

当使用 -N (并行)标志运行时,GHC 在做什么?

我编写了以下测试应用程序:

main = print $ sum $ map (read . show) [1 .. 10^7]
Run Code Online (Sandbox Code Playgroud)

当我使用和不使用 -N 标志运行它时,我得到以下结果:

$ ghc -O2 -threaded -rtsopts -o test test.hs
...
$ time ./test +RTS -s
50000005000000
real    0m12.411s
user    0m12.367s
sys     0m0.040s
$ time ./test +RTS -s -N12
50000005000000
real    0m22.702s
user    1m14.904s
sys     0m12.608s
Run Code Online (Sandbox Code Playgroud)

似乎 GHC 决定通过将计算分布在不同的核心上来尊重 -N12 标志(结果非常糟糕),但我找不到任何有关当代码不包含显式指令时它如何决定这样做的文档。我缺少一些文档吗?

我有 GHC 版本 8.6.5。

垃圾收集统计:

main = print $ sum $ map (read . show) [1 .. 10^7]
Run Code Online (Sandbox Code Playgroud)

parallel-processing multithreading haskell ghc

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

标签 统计

ghc ×1

git ×1

haskell ×1

multithreading ×1

parallel-processing ×1