小编Fre*_*e_D的帖子

这段代码中的空间泄漏在哪里?

我试图通过交替行将文件拆分为两个单独的文件.(即第1,3,5,7行写入文件1,第2,4,6,8行写入文件2).

我正在使用的文件大约是700MB,所以当我看到超过6GB的内存使用量时,我知道出了问题.

main :: IO()
main = withFile splitFile ReadMode splitData
  where
    splitData h = do
      dataSet <- lines <$> hGetContents h
      let (s1,s2) = foldl' (\(l,r) x -> (x:r,l)) ([],[]) dataSet
      writeFile testFile $ unlines s1
      writeFile trainingFile $ unlines s2
Run Code Online (Sandbox Code Playgroud)

我最初使用的是懒惰版的foldl,但经过一些研究后,似乎使用严格版本会有所帮助.但唉,它没有明显的区别.我也尝试用-O2进行编译,但这也没有做任何事情.

我正在使用GHC 7.10.2

我没有得到堆栈溢出,那么它使用所有内存是什么?

haskell memory-leaks

2
推荐指数
1
解决办法
84
查看次数

在matlab中使用未指定的常量

我正在尝试解决s域中的方程组.因此,以矩阵形式建立这个方程组:

a=[.4*s+s+5 -5; -5 .5*s+5]  
c=[3/s; 3/(2*s)]  
(1/s)*a*b=c
Run Code Online (Sandbox Code Playgroud)

我只是得到s未定义的错误.我怎样才能用s来解决b?

matlab linear-algebra symbolic-math

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