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

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,看看它是否能满足这些要点.
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
我正在尝试将Storm(请参阅此处)整合到我的项目中.我理解了拓扑,喷口和螺栓的概念.但是现在,我正在试图找出一些事情的实际实现.
A)我有一个带有Java和Clojure的多语言环境.我的Java代码是一个回调类,其中包含触发流数据的方法.推送到这些方法的事件数据是我想用作喷口的.
所以第一个问题是如何将进入这些方法的数据连接到喷口?我正在尝试i)传递backtype.storm.topology.IRichSpout,然后ii)将backtype.storm.spout.SpoutOutputCollector(请参阅此处)传递给该spout的open函数(请参阅此处).但我无法看到实际传递任何类型的地图或列表的方法.
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成员 …
我正在尝试使用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.sh和II)有和没有的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/sh在ENTRYPOINT中启动)运行将退出。
$ docker build ... .
$ docker run -it ...
... shell echos commands here, then exits
$
Run Code Online (Sandbox Code Playgroud)
我敢肯定这很简单。这里有什么解决方案?
假设我制作了一个项目“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) 我在编写可以遍历异构节点树的拉链时遇到问题.我有一张地图清单.每个地图都有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, … 这是我在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 ×3
apache-storm ×1
datomic ×1
devops ×1
docker ×1
highcharts ×1
highstock ×1
performance ×1
streaming ×1
swift ×1
zipper ×1