小编Rob*_*yre的帖子

Clojure并行映射和无限序列

假设我用以下方式定义所有自然数的序列:

(def naturals (iterate inc 0))
Run Code Online (Sandbox Code Playgroud)

我还定义了一个将自然映射到nil的函数,需要一段时间来计算,如下所示:

(defn hard-comp [_] (Thread/sleep 500))
Run Code Online (Sandbox Code Playgroud)

请注意计算时间以按照度量来评估以下s表达式clojure.core/time.

(dorun (map hard-comp (range 30))) ; 15010.367496毫秒

(dorun (pmap hard-comp (range 30))) ; 537.044554 msecs

(dorun (map hard-comp (doall (take 30 naturals))))) ; 15009.488499 msecs

(dorun (pmap hard-comp (doall (take 30 naturals)))) ; 3004.499013毫秒

(doall (take 30 naturals)) ; 0.385724毫秒

(range 30) ; 0.159374毫秒

pmap 使用显式范围调用时比使用自然部分快6倍.

由于(= (range 30) (take 30 naturals))返回true并且两个对象都是类型clojure.lang.LazySeq,并且clojure在调用函数之前调用函数的所有参数,如何解释上述时序细节?

parallel-processing optimization performance clojure map

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

Shebang在Ubuntu中解析问题

什么是在shebang线中包含解释器选项的可接受的,可移植的方式,即.我该怎么办呢

#!/usr/bin/env  python -c 
Run Code Online (Sandbox Code Playgroud)

或者(更重要的是)类似的东西

#!/usr/bin/env java -cp "./jars/*:./src" -Xmn1G -Xms1G -server
Run Code Online (Sandbox Code Playgroud)

并让它正确解析?现在ubuntu似乎只是将整个事情放在一起,尽管其他系统会解析这个问题没有问题.

http://en.wikipedia.org/wiki/Shebang_%28Unix%29

描述了问题,但没有解决方案.

java ubuntu shebang

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