问题标签 [windowed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Direct3D 11 IDXGISwapChain::Present() 在 Windows 10 窗口模式下每次调用都会阻塞
我正在试验 Windows 10、Direct3D 11 和 IDXGISwapChain::Present() 函数。当我在全屏模式下调用 Present 函数时,它会将命令排入队列并且直到大约第 4 次调用才会阻塞,这是预期的行为。
但是,当我在窗口模式下调用相同的函数时,它会在第一次调用和每个后续调用时阻塞。
我还尝试将 IDXGIDevice1::SetMaximumFrameLatency 函数设置为不同的值,但在窗口模式下,该函数似乎被忽略了。在全屏模式下,该功能可以正常工作。
我想知道是否有办法绕过 Present 函数在每次调用时阻塞,同时保持窗口模式。
这是我用来对上述问题进行单元测试的 C++ 代码:
如果你运行上面的代码,它会输出:
但是,如果您取消注释 SetFullscreenState 行,则会输出:
在窗口化的情况下,它会从第一次调用开始阻塞。在全屏情况下,它会从第四次调用开始阻塞。
编辑:添加了示例代码。
apache-kafka - 窗口化 KTable 上的 Kafka 操作
我想在窗口化的 KTable 上做一些进一步的操作。为了提供一些背景知识,我有一个主题的数据形式为:{clientId, txTimestamp, txAmount}
。从这个主题,我创建了一个流,由 clientId 分区,底层主题时间戳等于 txTimestamp 事件字段。从这个流开始,我想在每 1 小时窗口中聚合每个 clientId 的事务数。这是通过类似于以下内容完成的:
CREATE TABLE transactions_per_client WITH (kafka_topic='transactions_per_client_topic') AS SELECT clientId, COUNT(*) AS transactions_per_client, WINDOWSTART AS window_start, WINDOWEND AS window_end FROM transactions_stream WINDOW TUMBLING (SIZE 1 HOURS) GROUP BY clientId;
聚合按预期工作并产生类似于以下内容的值:
客户 ID | Transactions_per_client | windows开始 | 窗口结束 |
---|---|---|---|
1 | 12 | 1 | 2 |
2 | 8 | 1 | 2 |
1 | 24 | 2 | 3 |
1 | 19 | 3 | 4 |
我现在要做的是进一步处理此表以添加一个列,该列表示同一客户端的 2 个相邻窗口之间每个客户端的事务数差异。对于上一张表,这将是这样的:
客户 ID | Transactions_per_client | windows开始 | 窗口结束 | 偏差 |
---|---|---|---|---|
1 | 12 | 1 | 2 | 0 |
2 | 8 | 1 | 2 | 0 |
1 | 24 | 2 | 3 | 12 |
1 | 19 | 3 | 4 | -5 |
实现这一目标的最佳方法是什么(使用 kafka 流或 ksql)?我尝试使用用户定义的聚合函数来尝试创建此列,但它不能应用于 KTable,只能应用于 KStream。