gpt4 book ai didi

python - 为什么 pykafka 的生产者这么慢?

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:58 25 4
gpt4 key购买 nike

我使用 pykafka 编写了一个简单的生成器,但似乎无法让它执行。基本生产者和生产调用如下。当我用一条小消息调用它 100 次并添加一些计时/分析代码时,大约需要 14 秒。我知道这是消息的异步发送,所以我希望它会非常快。我缺少某些设置吗?我也用 min_queued_messages=1 试过了,这需要大约 2 秒的时间。

from pykafka import KafkaClient
import time

client = KafkaClient(hosts="kafka1.mydomain.com:9092", exclude_internal_topics=False)
topic = client.topics['mytopic']

start = time.time()

for x in xrange(100):
with topic.get_producer(delivery_reports=False,
sync=True,
linger_ms=0) as producer:
producer.produce("This is a message")

end = time.time()
print "Execution Time (ms): %s" % round((end - start) * 1000)

我确实在 pycharm 中做了一个配置文件,据说有 78.8% 的时间花在了“time.sleep”上?!它为什么要 sleep ?

最佳答案

topic.get_producer 调用应在生产者生命周期开始时调用一次。像您的示例代码那样在紧密循环中调用它会导致初始化序列重复运行,这是不必要的,并且会增加很多开销。如果将代码更改为以下内容,您的代码将运行得更快:

with topic.get_producer(delivery_reports=False,
sync=True,
linger_ms=0) as producer:
for x in xrange(100):
producer.produce("This is a message")

关于python - 为什么 pykafka 的生产者这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com