low-latency相关内容
我正在尝试通过/dev/shm编写IPC解决方案。 @SK-logic在这里的评论中给了我一些指示:Chronicle: How to optimize memory-mapped files for low-latency? 我的疑问是:我应该使用MappedByteBuffer还是只使用普通的FileChannel? 通过MappedByteBuffer,我可以使用sun.m
..
假设我们有一个套接字连接(让我们称之为c1), 我们还有N个其他套接字连接,我们要写入完全相同的消息, 要确定我们希望它写入哪个连接,我们只需要从c1读取前几个字节,但套接字上的其余字节不需要加载到Java堆中,只需写入c2... 简而言之,我们想要做的是。 我们在c1上有要读取的字节数的事件 我们读取前几个字节,并确定我们知道要将其重定向到c2。 我们将已经从c1获取的前几个字节写入c2,现在
..
我正在使用Chronica将大量数据从一个JVM传输到另一个JVM。问题是,我注意到我的基准测试中有很多抖动。我对内存映射文件的了解有些有限,但我知道操作系统会在内存和磁盘之间来回交换页面。 如何配置这些页面以获得最高性能,以我的情况为例,在使用纪事时减少抖动和尽可能低的延迟?它们需要变大还是变小?它们需要是多个还是几个? 这是我目前在Ubuntu盒子上的内容: $ cat /pro
..
我正在 Linux 上通过串行端口实现协议.该协议基于请求应答方案,因此吞吐量受限于将数据包发送到设备并获得应答所需的时间.这些设备大多基于 arm 并运行 Linux >= 3.0.我在将往返时间减少到 10 毫秒以下时遇到了麻烦(115200 波特,8 个数据位,无奇偶校验,每条消息 7 个字节). 哪些 IO 接口的延迟最低:select、poll、epoll 或使用 ioctl 手动
..
我尝试阅读一些文章,但对这个主题不是很清楚. 有人愿意向我解释以下几点: 为什么在 http 上使用 websocket 什么是全双工通信 低延迟交互是什么意思 解决方案 为什么要通过 http 使用 websocket? webSocket 是客户端和服务器之间的持续连接.该连续连接允许以下内容: 数据可以随时从服务器发送到客户端,客户端甚至不需要它.这通
..
谁能告诉我访问 L1、L2 和 L3 缓存以及 Intel i7 处理器上的主内存的大概时间(以纳秒为单位)? 虽然这不是一个专门的编程问题,但了解这些速度细节对于一些低延迟编程挑战是必要的. 解决方案 这是 i7 和 Xeon 系列处理器的性能分析指南.我应该强调,这有你需要的东西,还有更多(例如,查看第 22 页的某些时间和周期). 此外,此页面有一些详细信息关于时钟周期等
..
当我使用 KeyedStream 运行一个简单的 flink 应用程序时,我观察到事件的时间延迟从 0 到 100 毫秒不等.下面是程序 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();数据流source = env.addSource(new SourceFunction
..
我正在 Windows 机器上运行某个 Python 脚本的多个实例,每个实例都来自不同的目录并使用单独的 shell 窗口.不幸的是,Windows 为这些 shell 窗口中的每一个提供了相同的名称: : C:\Windows\system32\cmd.exe - 是否可以通过 Python 命令将此名称设置为其他名称? 解决方案 适用于 Windows 下的 Python2.7
..
我正在尝试通过高速 USB 2 以极低的延迟输出同步数据(以编程方式生成).理想情况下大约 1-2 毫秒.在 Windows 上我使用的是 WinUsb,在 OSX 上我使用的是 IOKit. 我想到了两种方法.我想知道哪个最好. 1 帧传输 WinUsb 允许的范围非常有限,并且要求每次同步传输都是整数帧(1 帧 = 1 毫秒).因此,为了最大限度地减少延迟,请在循环中使用每一
..
目标: 我正在构建FPV机器人,我想通过Web浏览器通过本地wi-fi连接对其进行控制. 我正在使用带有Raspbian Stretch的树莓派3B +.我制造了自己的电动机控制和功率调节器帽子. 经过大量研究测试,我决定将node.js用作http服务器和socket.io,以与我的机器人进行低延迟的双向通信.该堆栈可实现大约7毫秒的延迟. 机器人的图片 问题:
..
看看Jeff Dean著名的延迟指南 延迟比较数字(〜2012)----------------------------------L1缓存参考0.5 ns分支错误预测5 nsL2缓存参考7 ns 14x L1缓存互斥锁锁定/解锁25 ns主内存参考100 ns 20倍L2缓存,200倍L1缓存使用Zippy 3,000 ns压缩1K字节3 us通过1 Gbps网络发送1K字节10,000
..
所以我开始了一个简单的测试, cbs-pillowfight -h localhost -b默认-i 1 -I 10000 -T 知道: [10717.252368]运行+ --------- + --------- + --------- + --------- +[20-29]我们| ##-257[30-39]我们|#-106[40-49]我们| #################
..
我想将一些代码预取到指令缓存中.代码路径很少使用,但对于极少数情况,我需要将其放在指令高速缓存中或至少在L2中.对于这些罕见情况,我有一些提前通知._mm_prefetch是否适用于代码?有没有办法在缓存中获取这种不常用的代码?对于这个问题,我不在乎可移植性,所以即使asm也可以. 解决方案 答案取决于您的CPU体系结构. 也就是说,如果您使用的是gcc或clang,则可以使用 __
..
我对低延迟代码感兴趣,这就是为什么我尝试配置线程相似性的原因.特别是,它应该有助于避免上下文切换. 我已经使用 https://github.com/OpenHFT/Java-Thread配置了线程相似性-亲和力.我运行了非常简单的测试代码,该代码只是循环检查时间条件. long now = start; while (true) { if (n
..
我对 pyzmq 很陌生。我试图理解 inproc: 运输类,并创建了此示例示例以供使用。 看起来 Publisher 实例正在发布消息,但 Subscriber 实例不接收任何实例。 如果我移动了 Subscriber 实例进入单独的 进程 ,并将 inproc:更改为 tcp: 运输类,该示例有效。 这里是代码: 导入线程 导入时间 导入zmq contex
..
我们看到 Windows 7 上的ZeroMQ出现了一种奇怪且无法解释的现象,它通过TCP发送消息。(或通过 > inproc ,因为ZeroMQ在Windows上内部使用TCP进行信号传输。) 现象是前500条消息到达的速度越来越慢,并且延迟不断增加。然后,除了CPU /网络争用导致的峰值外,等待时间下降并且消息始终如一地迅速到达。 问题在此处描述: https://github.c
..
当我尝试使用0mq( ZeroMQ )同步两个python3脚本时,出现了这个奇怪的死锁。这些脚本可以很好地运行数千次迭代,但是迟早它们都会停止并互相等待。我正在Windows 7上从不同的CMD-Windows运行两个脚本。 我不知道 为什么这样的死锁甚至可能发生 。 这儿怎么了? 脚本A: 而(1): context = zmq.Context() socket =
..
我需要(几乎)在Linux上使用gstreamer进行实时音频捕获.我的问题是我无法将延迟降低到〜210ms以下.我尝试了从麦克风到耳机的简单环回: gst-launch-1.0 pulsesrc ! alsasink gst-launch-1.0 alsasrc ! alsasink 两者都产生了相同的延迟. alsasrc的latency-time属性没有帮助(它确实增加了给定的延迟
..
我想播放实时声音,并且没有用户交互的明显滞后. 要获得低延迟,我必须发送小块pcm数据. 我在做什么: QAudioFormat format; format.setSampleRate(22050); format.setChannelCount(1); format.setSampleSize(16); format.setCodec("au
..
当我使用KeyedStream运行一个简单的flink应用程序时,我观察到事件的时间延迟在0到100毫秒之间变化.下面是程序 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStream source = env.addSource(new
..