小编Nut*_*tim的帖子

Highstock与谷歌排行榜的表现

A)我正在使用 Highstock图表库来进行我的金融项目.但是,我陷入了性能问题的困境.我在Highstock的工作实现有 i)图表中的5个图表 ii)图表中的多行(和行类型) iii)应用于图表上的点的标签 iv)每秒一次到达的新数据,添加点和动画向左图.但是,我在使用此设置时遇到了一些关键问题:

  • 渲染非常慢.由于绘制图形的数量(和次数),这是一个性能问题
  • 无法调整底部的时间范围控制.由于控制冻结导致的性能问题
  • 我可以添加一个点,向左移动图形.但是,我无法添加带有该新数据点的标志.看到这个SO问题.

在此输入图像描述

B)我已经检查了其他这些SO问题( Highstock Performance Issue,Highcharts Performance Enhancement Method?),并尝试了他们的解决方案,但改进非常有限:

:turboThreshold 50 ;; tick-list length will be a max of 100
:shadow false
:marker {:enabled false}
:plotOptions{:series {:enableMouseTracking false}}
Run Code Online (Sandbox Code Playgroud)

C)我没有看到这些Highstock问题的简单解决方案.这是一个很棒的图书馆.但我正在查看谷歌图表API,看看它是否能满足这些要点.

  • 鉴于以下所有交互,Google Charts API的性能超过了Highstock ......
  • 一页上有多个图表
  • 1个视图中的多个重叠图表
  • 图表:线,面积(范围),直方图,阈值线(见红线和绿线)
  • 轻松添加标记到我的时间序列中的一个点
  • 轻松将点添加到我的时间序列折线图中
  • 轻松地将点和标志(同时)添加到我的时间序列折线图中

D)有没有人经历过类似的事情?还有其他方法可以改善我的高品质性能吗?Google Charts可以在这里做得更好吗?

谢谢

PS.我的highcharts调用看起来像这样(Clojurescript代码):

(defn chart-fill [selector dataList signal-map strategy-map label]

  (-> ($ selector)
      (.highcharts "StockChart" (clj->js …
Run Code Online (Sandbox Code Playgroud)

performance google-finance highcharts quantitative-finance highstock

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

Storm> Howto将Java回调集成到Spout中

我正在尝试将Storm(请参阅此处)整合到我的项目中.我理解了拓扑,喷口和螺栓的概念.但是现在,我正在试图找出一些事情的实际实现.

A)我有一个带有Java和Clojure的多语言环境.我的Java代码是一个回调类,其中包含触发流数据的方法.推送到这些方法的事件数据是我想用作喷口的.

所以第一个问题是如何将进入这些方法的数据连接到喷口?我正在尝试i)传递backtype.storm.topology.IRichSpout,然后ii)backtype.storm.spout.SpoutOutputCollector(请参阅此处)传递给该spoutopen函数(请参阅此处).但我无法看到实际传递任何类型的地图或列表的方法.

B)我项目的其余部分都是Clojure.通过这些方法将会有大量数据.每个事件的ID都在1到100之间.在Clojure中,我想将来自spout的数据拆分为不同的执行线程.我认为那些将是螺栓.

如何设置Clojure螺栓从喷口中获取事件数据,然后根据传入事件的ID中断线程?

提前谢谢蒂姆

[编辑1]

我实际上已经解决了这个问题.我结束了1)实现我自己的IRichSpout.然后,我2)连接,使得嘴内部的元组将输入数据流在我的Java回调类.我不确定这是不是惯用的.但它编译并运行没有错误.但是,3)我没有看到传入的流数据(肯定存在),来自printstuff bolt.

为了确保事件数据得到传播,我是否需要在spout或bolt实现或拓扑定义中做些具体的事情?谢谢.


      ;; tie Java callbacks to a Spout that I created
      (.setSpout java-callback ibspout)

      (storm/defbolt printstuff ["word"] [tuple collector]
        (println (str "printstuff --> tuple["tuple"] > collector["collector"]"))
      )
      (storm/topology
       { "1" (storm/spout-spec ibspout)
       }
       { "3" (storm/bolt-spec  { "1" :shuffle }
                               printstuff
             )
       })

[编辑2]

根据SO成员 …

streaming clojure message-queue apache-storm

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

使用自定义Shell脚本作为Docker入口点

我正在尝试使用docker-compose来启动一个容器。作为ENTRYPOINT,该容器具有我编写的简单bash脚本。现在,当我尝试通过以下任何一种方式调高容器时:

  • docker-compose up
  • docker-compose up foo

它没有完成。即,尝试将(docker exec -i -t $1 /bin/bash)附加到正在运行的容器,失败,并显示:

来自守护程序的错误响应:容器xyz正在重新启动,请等待容器运行。

我尝试在后台放置命令。那没用。

我的脚本

cmd1 &
cmd2 &&
...
cmdn &
Run Code Online (Sandbox Code Playgroud)

我也试过我)与不entrypoint: /bin/sh /usr/local/bin/my-script.shII)有和没有的tty: true选项。没有骰子。

docker-compose.yml

version: '2'
services:
  foo:
    build:
      context: .
      dockerfile: Dockerfile.foo
    ...
    tty: true
    entrypoint: /bin/sh /usr/local/bin/my-script.sh
Run Code Online (Sandbox Code Playgroud)

还尝试了仅手动的docker构建/运行周期。并且(无需/bin/shENTRYPOINT中启动)运行将退出。

$ docker build ... .
$ docker run -it ... 
... shell echos commands here, then exits
$
Run Code Online (Sandbox Code Playgroud)

我敢肯定这很简单。这里有什么解决方案?

docker docker-compose devops

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

如何在 Swift repl 中加载 SwiftPM 项目及其依赖项

假设我制作了一个项目“Bar”,如下所示:

~ $ mkdir Bar
~ $ cd Bar/
Bar $ swift package init --type library
Bar $ git init .
Bar $ git add .
Bar $ git commit -m "Initial commit"
Bar $ git tag 1.0.0
Bar $ swift build
Run Code Online (Sandbox Code Playgroud)

如果我尝试i)使用第 3 方依赖项(假设Alamofire/Alamofire),然后尝试ii)导入该依赖项或iii)复制中的项目模块,我会收到加载错误。

$ swift

  1> import Bar
error: repl.swift:1:8: error: no such module Bar'
import Bar
       ^

  1> import Alamofire
error: repl.swift:1:8: error: no such module 'Alamofire'
import …
Run Code Online (Sandbox Code Playgroud)

swift

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

Clojure Zipper在异构树上

我在编写可以遍历异构节点树的拉链时遇到问题.我有一张地图清单.每个地图都有ii)一个:输入键,其值是一个地图列表.

我想使用拉链访问每个叶子并添加计算值.代码块和输入树数据如下.我似乎无法获取拉链代码来访问叶节点,并添加{:thing 123}.我一定很遗憾.任何见解?

一个)

      (loop [loc (zip/zipper  (or map? list?)
                              #((if (map? %1)              ;; get children of a node
                                  (:inputs %1)
                                  %1 ))
                              #(%1)                            ;; create a new node 
                              (:input-layer neural-network)) ] 

        (if (zip/end? loc) 
          (zip/root loc) 
          (if (map? loc) 
            (recur  (zip/next 
                      (zip/edit loc merge { :thing 123 } ))) 
            (recur (zip/next loc)) 
          ) 
        ) 
      ) 

B)


     ({:inputs
       ({:key :avolume, :value 2.25, :weight 0.4283380545172636, :bias 0}
        {:key :bvolume, :value 3.0, :weight 0.6970037374879661, :bias 0}
        {:key :ask, :value 1.32379, :weight 0.5387437158323669, …

functional-programming clojure zipper

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

将动态数量的"变量"传递给Datomic API函数

这是我在Datomic google小组上提出的问题的转贴(请参阅此处 - 最后3篇帖子最佳).

这个问题围绕着我动态生成Datomic查询的事实.因此,在传递给函数之前,参数(名称和值)的数量是未知的.我可以很好地生成查询.核心问题是,使用Clojure Datomic API,我无法使用动态数量的参数调用datomic.api/q函数.所以下面的〜@ unquote-splice表达式失败了.我尝试了其他几种方法,包括局部应用,但无济于事.

(def expression-final `(datomic.api/q ~expression-intermediate ~db-conn ~@param-values))   ;; gives the error in question
(eval expression-final)


 java.lang.Exception: processing rule: (q__34868 ?e)
    at datomic.datalog$eval_rule$fn__4687.invoke(datalog.clj:977)
    at datomic.datalog$eval_rule.invoke(datalog.clj:957)
    at datomic.datalog$eval_query.invoke(datalog.clj:999)
    at datomic.datalog$qsqr.invoke(datalog.clj:1053)
    at datomic.datalog$qsqr.invoke(datalog.clj:1021)
    at datomic.query$q.invoke(query.clj:453)
    at datomic.api$q.doInvoke(api.clj:31)
    ... 1 stack levels elided ...
    at user$eval34866.invoke(crud_spec.clj:32)
    ... 3 stack levels elided ...
    at stefon_datomic.crud$retrieve_entity.invoke(crud.clj:95)
    ...
 Caused by: java.lang.Exception: processing clause: [?e :posts/title (quote ?title)]      ;; this fails …
Run Code Online (Sandbox Code Playgroud)

clojure datomic

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