Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么VisualVM中的CPU配置文件显示,在使用clojure'时,进程的所有时间都花在了承诺上;s core异步读取kafka流_Clojure_Apache Kafka - Fatal编程技术网

为什么VisualVM中的CPU配置文件显示,在使用clojure'时,进程的所有时间都花在了承诺上;s core异步读取kafka流

为什么VisualVM中的CPU配置文件显示,在使用clojure'时,进程的所有时间都花在了承诺上;s core异步读取kafka流,clojure,apache-kafka,Clojure,Apache Kafka,我正在运行一个clojure应用程序,从kaka流读取数据。我正在使用github项目阅读卡夫卡流。当我使用visual vm分析我的应用程序以查找热点时,我注意到大约70%的cpu时间都花在函数clojure.core$promise$reify\uuu 6310.deref上 Spook api使用者是Kafka consumergroup api上的轻量级使用者。它读取卡夫卡主题并发布到核心异步通道。如果我继续使用这个api,我应该担心我的应用程序延迟会受到影响。有没有解释为什么promi

我正在运行一个clojure应用程序,从kaka流读取数据。我正在使用github项目阅读卡夫卡流。当我使用visual vm分析我的应用程序以查找热点时,我注意到大约70%的cpu时间都花在函数clojure.core$promise$reify\uuu 6310.deref上


Spook api使用者是Kafka consumergroup api上的轻量级使用者。它读取卡夫卡主题并发布到核心异步通道。如果我继续使用这个api,我应该担心我的应用程序延迟会受到影响。有没有解释为什么promise上的具体化占用了这么多cpu时间。

在Clojure中,
$
在类的打印表示中用于表示内部类
clojure.core$promise$reify\uuu 6310.deref
意味着对通过
reify
创建为
clojure.core/promise
的内部类的类调用方法
deref
。事实证明,如果您查看
promise
的类,它将显示为
clojure.core$promise
中的内部具体化类

Clojure中的
promise
表示可能还不可用的数据。您可以在repl中看到其行为:

user> (def p (promise))
#'user/p
user> (class p)
clojure.core$promise$reify__6363
user> (deref p)

这将挂起并且不给出任何结果,并且不会给出下一个repl提示,直到您从另一个repl连接向PROMICE传递,或者中断调用。时间花在
promise
deref
上的事实仅仅意味着程序逻辑正在等待尚未计算(或尚未通过网络等)的值。

在Clojure中,
$
用于类的打印表示,以表示内部类
clojure.core$promise$reify\uuu 6310.deref
意味着对通过
reify
创建为
clojure.core/promise
的内部类的类调用方法
deref
。事实证明,如果您查看
promise
的类,它将显示为
clojure.core$promise
中的内部具体化类

Clojure中的
promise
表示可能还不可用的数据。您可以在repl中看到其行为:

user> (def p (promise))
#'user/p
user> (class p)
clojure.core$promise$reify__6363
user> (deref p)

这将挂起并且不给出任何结果,并且不会给出下一个repl提示,直到您从另一个repl连接向PROMICE传递,或者中断调用。时间花在
promise
deref
上的事实仅仅意味着程序逻辑正在等待尚未计算(或尚未通过网络输入等)的值.

因此,在我的情况下,这确实意味着没有开销,因为当我在可视化虚拟机配置文件中看到这一点时,
deref
promise
上花费的任何时间都应该花在实际任务上,这将
实现该承诺,因此我认为最好在其他地方寻找模式,是的,在我的例子中,这真的意味着没有开销,因为当我在可视化虚拟机配置文件中看到这一点时,任何花在
deref
上的
承诺上的时间都应该花在实际的任务上,这将
实现该承诺,所以我认为最好在其他地方寻找模式,是的