提问人:Danish Sharma 提问时间:10/24/2023 最后编辑:Danish Sharma 更新时间:10/24/2023 访问量:28
如何使用异步 nextAsync 调用从多个 DataStreams 中高效打印按时间顺序排序的条目?
How to Efficiently Print Chronologically Ordered Entries from Multiple DataStreams with Asynchronous nextAsync Calls?
问:
设置:我有一个类,它提供了一个检索下一个条目的函数。每个条目都由一条消息和一个时间戳组成。单个 DataStream 中的条目按时间顺序排列,但条目数未知。该函数继续返回条目,直到最终返回 false,指示数据源已耗尽。DataStream
nextAsync
nextAsync
问题描述:我有 DataStreams,我的目标是打印按时间顺序排列的条目。问题是该函数返回的 promise 有轻微的(毫秒级)延迟。重要的是,不同 DataStreams 中的条目彼此之间没有固有的时间顺序。此外,DataStreams 可能非常广泛,因此同时存储所有条目的效率很低。n
nextAsync
建议的解决方案:我的想法是利用一个存储包含条目及其相应 DataStream 索引的对象,按时间戳排序。对象结构如下所示:min-priority queue
{
message,
timestamp,
indexOfDataStream,
}
我的方法涉及使用一个 while 循环,该循环一直持续到优先级队列为空。在每次迭代中,我检索并打印具有最小时间戳的条目,并使用 indexOfDataStream 获取该 DataStream 的下一个条目,随后将其推回优先级队列。await nextAsync
虽然我提出的解决方案会同步所有调用,但我对优化代码以加快执行速度感兴趣。是否有任何技术或方法可以提高此过程的运行时效率?
答: 暂无答案
评论