buffer相关内容

Linux 中的缓冲区和高速缓存有什么区别?

我不清楚这两个 Linux 内存概念之间的区别是什么:buffer 和 cache.我已经通读了这篇文章,在我看来,它们之间的区别在于过期时间政策: 缓冲区的政策是先进先出 缓存的政策是最近最少使用. 我说得对吗? 特别是,我正在查看两个命令:free 和 vmstat james@utopia:~$ vmstat -S Mprocs -----------内存------- ..
发布时间:2021-12-20 11:12:40 服务器开发

使用“待发送"限制 TCP 发送队列和其他设计问题

这个问题是我在过去几天里问的另外两个问题的结果. 我正在创建一个新问题,因为我认为它与我对如何控制发送/接收流程的理解中的“下一步"有关,我还没有得到完整的答案. 其他相关问题是: 一个 IOCP 文档解释问题 - 缓冲区所有权歧义 非阻塞 TCP 缓冲区问题 总而言之,我使用的是 Windows I/O 完成端口. 我有几个线程处理来自完成端口的通知. 我相信这个问题是独立于平 ..
发布时间:2021-12-20 10:40:13 其他开发

为连续测量创建缓冲矩阵

我开始在 MATLAB 中编程,但在创建缓冲矩阵时遇到了一些问题.我正在尝试执行以下操作: 我不断从网络摄像头获取图像,并在分割后获取移动目标的质心.我需要存储质心数据进行处理,但我不希望它占用太多内存.例如,如果我是一个时间t=inf,我正在考虑将10个时间点的数据存储在一个矩阵中,就像一个循环缓冲区,然后写入和擦除旧数据,因为我需要工作具有时间 (t) 中的实际数据和时间 (t-1) 中 ..
发布时间:2021-12-19 00:02:10 其他开发

如何将 ex 命令输出重定向到当前缓冲区或文件?

如何将 ex 命令的输出重定向或通过管道传输到当前缓冲区或文件中? 例如,我想将所有寄存器的内容读入当前缓冲区,在 ex 模式下使用 :registers 显示. 解决方案 :redir >name_of_registers_file:寄存器:redir 结束:r name_of_registers_file:帮助重定向 最后一个命令非常有用,因为有很多重定向选项:到变量、到寄存器 ..
发布时间:2021-12-18 15:44:20 其他开发

如何从 UNIX 系统上的 tty 输入队列刷新未读数据?

我的程序必须从标准输入中读取一个字符,所以我使用了 read(0, buffer, 1).但是如果用户插入多个单个字符,它们会保留在某个缓冲区中,当我再次调用 read 时,它们仍然存在. 那么,我怎样才能丢弃这些字符呢?我希望当我再次调用 read 时,缓冲区会填充新字符,而不是旧字符. 一个例子:我有一个 read(0, buffer, 1) 并且用户写入 abcde.我的缓冲区包 ..
发布时间:2021-12-15 08:13:19 服务器开发

std::cout 不会打印

std::cout 不起作用?我有一个 c/c++ 代码,但是 std::cout 不打印任何内容,甚至不打印常量字符串(例如“hello"). 有什么方法可以检查 cout 是否能够/无法打开流?有一些成员函数,比如good()、bad(),...但我不知道哪个适合我. 解决方案 确保刷新流.这是必需的,因为输出流是缓冲的,除非您自己手动刷新缓冲区,否则您无法保证何时刷新缓冲区. ..
发布时间:2021-12-14 08:14:53 C/C++开发

一旦被bytes.Buffer占用就无法释放内存

我以 []byte 类型的 compressedbytes 接收压缩 ASCII 文本字节.我面临的问题是以下过程占用了大量内存,在函数结束后没有释放,并在整个程序运行时一直被占用. b := bytes.NewReader(compressedbytes)r,错误:= zlib.NewReader(b)如果错误!= nil {恐慌(错误)}明文,错误 = ioutil.ReadAll(r)如 ..
发布时间:2021-12-11 22:21:03 其他开发

判断socket上是否有Data剩余并丢弃

我正在 Linux 下编写一个从 TCP 套接字获取数据的接口.用户提供一个缓冲区,其中存储接收到的数据.如果提供的缓冲区太小,我只想返回一个错误.第一个问题是确定缓冲区是否太小.recv() 函数只返回实际写入缓冲区的字节数.如果我使用 recv() 联机帮助页上说明的 MSG_TRUNC 标志,它仍然会返回相同的信息.第二个问题是丢弃仍在套接字中排队的数据.因此,如果我确定我提供的 Buffe ..
发布时间:2021-12-11 11:57:03 服务器开发

使用 write() 系统调用写入一个完整的缓冲区

我想使用 编写系统调用: #include ssize_t write(int fd, const void *buf, size_t count); 文档指出 write() 将最多 count 个字节从指向 buf 的缓冲区写入文件描述符 fd 所引用的文件. 当然,可以通过返回值检测实际写入的字节数.但是,如果我想确保我的整个字节缓冲区都通过连接发送,那么这样做的好方法是什么 ..
发布时间:2021-12-11 11:54:51 其他开发

C++ 套接字编程 TCP/IP 套接字缓冲区的最大大小?

我正在使用 C++ TCP/IP 套接字.根据我的要求,我的客户端必须连接到服务器并读取它发送的消息(这真的很新,不是吗)但是......在我的应用程序中,我必须等待一段时间(通常为 1 - 2 小时)) 在我真正开始阅读消息之前(通过 recv() 或 read())并且服务器仍然继续发送消息. 我想知道缓冲区的容量是否有限制,用于保存这些消息以防它们不被读取,以及使用谁的物理内存来缓冲这 ..
发布时间:2021-12-11 11:37:21 C/C++开发

在 Linux 中在运行时指定 UDP 接收缓冲区大小

在 Linux 中,可以使用以下命令为网络数据包(例如 UDP)指定系统的默认接收缓冲区大小: sysctl -w net.core.rmem_max=sysctl -w net.core.rmem_default= 但我想知道,应用程序(例如,在 c 中)是否有可能通过在运行时指定每个 UDP 套接字的接收缓冲区大小来覆盖系统的默认值? 解决方案 您可以从默认值开始增加该值,但不能将 ..
发布时间:2021-12-11 11:31:46 服务器开发

当我将数据写入阻塞套接字时会发生什么,比另一端读取速度快?

假设我将数据写入速度非常快[我有内存中的所有数据] 到阻塞套接字.进一步假设另一方读取数据的速度非常慢[例如每次读取之间休眠 1 秒]. 在这种情况下,写入方面的预期行为是什么?写操作会阻塞直到对方读取足够的数据,还是会返回连接重置等错误? 解决方案 对于阻塞套接字,send() 调用将阻塞,直到所有数据都复制到网络堆栈的缓冲区中为止联系.它不必由另一方接收.此缓冲区的大小取决于实现 ..
发布时间:2021-12-11 11:30:51 其他开发

为什么更改 SO_RCVBUF 的值不起作用?

我正在制作一个程序,它创建一个 RAW 套接字以读取所有流量.在 socket() 和 recvfrom() 调用之间(最后一个在循环中以从缓冲区中取出所有数据包)我等待 5 秒. 当我运行程序时,我以“更快模式"(以快速填充缓冲区)向我的程序发送了大约 200 个带有 hping3 命令的数据包.5 秒过后,我的程序从缓冲区中提取了大约 150 个数据包. 我尝试更改接收缓冲区的大小 ..
发布时间:2021-12-11 11:16:49 其他开发

如何找到linux的socket缓冲区大小

Linux 的默认套接字缓冲区大小是多少?有什么命令可以看到吗? 解决方案 如果你想在终端中看到你的缓冲区大小,你可以看看: /proc/sys/net/ipv4/tcp_rmem(用于读取) /proc/sys/net/ipv4/tcp_wmem(用于写入) 它们包含三个数字,分别是最小、默认和最大内存大小值(以字节为单位). ..
发布时间:2021-12-11 11:13:58 服务器开发

在套接字库中调用 recv 时,我的 recv 缓冲区应该有多大

我有几个关于 C 语言套接字库的问题.这是我在问题中会参考的一段代码. char recv_buffer[3000];recv(socket, recv_buffer, 3000, 0); 我如何决定使 recv_buffer 有多大?我正在使用 3000,但它是任意的. 如果 recv() 收到比我的缓冲区大的数据包会怎样? 如何知道我是否在没有再次调用 recv 的情况下收到了整条消息 ..
发布时间:2021-12-11 11:09:29 其他开发

如何保存两台相机的数据但不影响它们的图片获取速度?

我正在使用多光谱相机来收集数据.一种是近红外的,另一种是彩色的.不是两台相机,而是一台相机可以同时获得两种不同的图像.我可以使用一些 API 函数,例如 J_Image_OpenStream.两部分核心代码如下所示.一个是用来打开两个流(其实是在一个sample里面的,我不得不用,但是我不是很清楚它们的意思),设置两个avi文件的保存路径,开始采集. //打开流retval0 = J_Image ..
发布时间:2021-12-10 20:58:17 C/C++开发

另一个:强制 Chrome 完全缓冲 mp4 视频

我已经看到了一些关于此的主题,但没有答案,所以我想我会在受污染的 youtube 相关页面的墓地中添加另一个. 我有一个 100MB 的 mp4 视频需要浏览器完全下载, 然而,当它完全下载时没有触发任何事件,Chrome 似乎停止缓冲更多的视频,直到当前视频时间几乎达到缓冲区的末尾,然后它请求更多. 如何让浏览器完全下载视频并 100% 缓冲它? 谢谢 解决方案 ..
发布时间:2021-12-10 14:43:13 前端开发

带有流的文件 I/O - 最佳内存缓冲区大小

我正在编写一个小型 I/O 库来协助一个更大的(爱好)项目.该库的一部分对文件执行各种功能,该文件通过 FileStream 对象读取/写入.在每个 StreamReader.Read(...) 传递中, 我触发了一个事件,该事件将在主应用程序中用于显示进度信息.在循环中进行的处理是不同的,但不会太耗时(例如,它可能只是一个简单的文件副本,或者可能涉及加密......). 我的主要问题 ..
发布时间:2021-12-09 20:04:45 C#/.NET

如何清除 Mac OS X 终端中的先前输出?

我知道“清除"当前屏幕的 clear 命令,但它只是通过打印大量换行符来实现的 - 清除的内容只会向上滚动. 有没有办法从终端完全擦除所有以前的输出,这样即使向上滚动也无法到达? 解决方案 手动清除终端: ⌘+K Command+K 用于较新的键盘 从shell脚本中清除终端; /usr/bin/osascript -e '告诉应用程序“系统事件"告诉进程“终端" ..
发布时间:2021-12-06 21:08:30 其他开发