小编lui*_*iel的帖子

如何发现交易是否经常中止?

我正在尝试调试使用STM的程序.ThreadScope读数指出了一个非常高的CPU活动,你可以在这里看到:

在此输入图像描述

所以我试图找出是否由于经常中止的交易而发生这种情况.我认为第一件事就是用这样的东西来测试:

atomically $ do
  someWork 
  ...
`orElse` do
  unsafeIOToSTM $ traceEventIO "transaction aborted!"
  retry
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否正确,或者这是否是STM场景中调试的最佳方法.有任何想法吗?

haskell ghc stm

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

如何提高Clojure中的文本处理性能?

我正在Clojure中编写一个简单的桌面搜索引擎,以此来了解有关该语言的更多信息.到目前为止,我的程序文本处理阶段的表现非常糟糕.

在文本处理期间,我要:

  • 清理不需要的字符;
  • 将字符串转换为小写;
  • 拆分文档以获取单词列表;
  • 构建一个地图,将每个单词与其在文档中的出现相关联.

这是代码:

(ns txt-processing.core
  (:require [clojure.java.io :as cjio])
  (:require [clojure.string :as cjstr])
  (:gen-class))

(defn all-files [path]
  (let [entries (file-seq (cjio/file path))]
    (filter (memfn isFile) entries)))

(def char-val
  (let [value #(Character/getNumericValue %)]
    {:a (value \a) :z (value \z)
     :A (value \A) :Z (value \Z)
     :0 (value \0) :9 (value \9)}))

(defn is-ascii-alpha-num [c]
  (let [n (Character/getNumericValue c)]
    (or (and (>= n (char-val :a)) (<= n (char-val :z)))
        (and (>= n (char-val :A)) (<= n (char-val :Z))) …
Run Code Online (Sandbox Code Playgroud)

text-processing clojure lazy-sequences

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

在ZingChart上自定义x轴

我想使用ZingChart绘制一个与此类似的图形: R-图表

直到现在我能做的最好的是: ZING-图

资源:

{ 
  "graphset": [{
    "type": "line",
    "series": [
        {
            "values":[[1,218.2], [2,121.7], [4,62.27], [8,34.37], [16,19.79], [20,16.52], [32,17.1], [40,16.11], [64,91.9]]
        }
    ],
    "scale-x":{
        "values":[1,2,4,8,16,20,32,40,64]
    }
  }]
}
Run Code Online (Sandbox Code Playgroud)

如何将x-ticks的位置固定为与x值相同?

javascript visualization zingchart

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

forkOn和-qm RTS标志之间的关系是什么?

假设我有一个只使用生成线程的程序forkOn.在这种情况下,不同功能之间不会对Haskell线程进行负载平衡.那么有没有执行这个程序有什么区别+RTS -qm

根据文档,-qm禁用线程迁移,我认为它具有类似的使用效果forkOn.我在这个假设中是否正确?我不确定文件在这方面有多清楚.

concurrency multithreading haskell

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