问题标签 [unbuffered]

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.

0 投票
2 回答
1260 浏览

mysql - ZF2 PDO 无缓冲查询

我有一个安装方法,用于我的 cms 女巫读取 sql 文件并执行它们。到目前为止一切顺利..但我还需要对数据库进行一些初始化(插入一些动态值)

这些插入被执行,但下一个 sql 文件抛出异常:

ZF2 PDO 语句没有 fetchAll 或 closeCursor。那么如何解决这个问题?

0 投票
5 回答
8053 浏览

php - 使用 PDO 对一个请求执行无缓冲查询

我希望仅对某些请求进行无缓冲查询。

在 mysql 中,我正在这样做:

我查看了 php doc,根据它,pdo我们必须以这种方式进行无缓冲查询:

但是是否可以仅对“forum_topics”表结果进行无缓冲而不将所有 pdo 实例设置为无缓冲?

0 投票
0 回答
218 浏览

bash - shell脚本中mplayer输出的无缓冲解析

stdbuf在尝试了在 shell 脚本中使用和unbuffer解析mplayer(在我的情况下也是)输出的几种变体之后libdvdnav,我没有找到可行的解决方案。这是我的 shell 脚本,没有解析输出的部分——它只是在每一行上运行 echo。

即使在使用时输出也会被缓冲stdbuf,因此我无法实时解析每一行。使用目标时有没有办法捕获mplayer输出dvdnav

0 投票
1 回答
131 浏览

go - 去通道无缓冲

我运行代码,结果是:

我对结果感到困惑。为什么在“get 1”之后出现“message 1”而不是“set 2”?这让我困惑了好几天!

我认为当它“获取 1”时,应该阻止主 go 例程并且应该执行子 go 例程,将“消息 1”发送到通道消息并继续 for 循环并打印“设置 2”,因此被阻止将“消息 2”发送到通道,因此主 go 例程开始运行,输出“消息 1”。

0 投票
3 回答
97 浏览

go - Go Channels 行为出现不一致

我看到无缓冲通道的工作方式不一致 - 这要么是 Go 中的不一致,要么是我对 Go 的理解......

这是一个带有输出的简单示例。“不一致”与“制作频道”行有关。

当我按上述方式运行时,输出与预期一致(对于缓冲区大小为 2 也与预期一致)。即通道有一个缓冲区为 1,它保存一个值 - 在下一次尝试写入时,有一个上下文切换到 main 以允许它使用第一个值。

然后,当我将 make 频道行更改为:

输出是:

我原以为send 2and therecd Hello会反过来……

我得到相同的输出hole := make(chan string)

我检查了规范,它说

容量(以元素数量计)设置通道中缓冲区的大小。如果容量为零或不存在,则通道是无缓冲的,并且只有在发送方和接收方都准备好时通信才会成功。否则,如果缓冲区未满(发送)或非空(接收),则通道被缓冲并且通信成功而不会阻塞。

请有人解释一下

  • 为什么我的期望是错误的 - 请善待
  • 或者 Go 是否真的错了

谢谢

0 投票
1 回答
1468 浏览

c++ - ifstream, unbuffered read, and no read ahead caching?

I'm trying to accurately determine some of the interactions between a userland program using the C/C++ library and the OS (and its components like the filesystem's Page Cache or Disk Cache). I have two questions.

First, is "unbuffered" in C/C++ library equivalent to "no read ahead" and "no caching" in the OS. Or am I suffering a disconnect?

Second, is it possible to perform un-cached file operations and unbuffered reads using C++'s streams? If so, how does one do it since there does not seem to be any open flags related to it?


The reason I ask is similar to the following. I'm working with a C++ library that provides integration with C++ streams, and I want to make sure I'm not getting any unintentional side effects.

If the stream triggers a read of block or sector size (like 4K or 8K) but I only need 32 bytes, then I'm wasting a lot of potential entropy. I might even deplete it and DoS myself and other programs.

I feel like this question has probably been asked and answered, but I'm not having much luck in finding it.


Here's a related question (thanks to Dietmar): How to disable buffering on a stream?. But it does not address or discuss the unintended side effects that may be present due to OS or filesystem read ahead and caching.

0 投票
1 回答
178 浏览

php - 我希望 PHP 在客户端缓冲我的 MySQL 结果并且我想立即开始使用结果

MySQL 无缓冲查询真的完全不使用 PHP 缓冲吗?在 PHP 访问数据之前,缓冲查询真的缓冲了整个结果集吗?

从我读到的关于 MySQL 缓冲查询的内容来看,这不是我想要的,因为我想立即开始处理结果,而不必在开始之前等待所有结果都被缓冲。但是从我读到的关于无缓冲查询的内容来看,这也不是我想要的,因为我确实希望它缓冲客户端上的结果,这样 MySQL 就不会被搁置更长的时间,我只是不这样做'在我开始处理结果之前,不希望它等待结果完全缓冲。所以帮助我理解。

在允许 PHP 开始使用结果之前,MySQL/PHP 中的缓冲查询是否真的缓冲了整个结果集?并且无缓冲查询真的完全不使用缓冲,以便 MySQL 服务器在将下一个结果发送到客户端之前不断等待 PHP 请求下一个结果吗?如果这是真的,为什么没有办法立即开始使用结果,但仍然缓冲结果以减轻 MySQL 的负载?

我的 MySQL 服务器是具有许多不同客户端节点的共享服务器。所以在客户端不使用缓冲是没有意义的。但是查询很大,因此它们不需要等待返回整个结果集即可开始使用结果。

那我理解对了吗?没有办法在这里做我想做的事吗?没有办法以实际的方式处理这个问题吗?

0 投票
1 回答
479 浏览

php - HY000 - 2014 - 在其他无缓冲查询处于活动状态时无法执行查询

无法执行语句(HY000 - 2014 - 在其他无缓冲查询处于活动状态时无法执行查询。考虑使用 PDOStatement::fetchAll()。或者,如果您的代码只针对 mysql 运行,您可以通过设置启用查询缓冲PDO::MYSQL_ATTR_USE_BUFFERED 在 zf2 中运行操作时出现此错误,如何解决此问题

{ $assSub=$this->getTblInstitutesDepartmentsTable()->getAssignedDetails($urlassId);

$request = $this->getRequest();

0 投票
0 回答
88 浏览

php - PHP/MySQL:在查询过程中锁定数据

我有一个数据库,其中一些表每 2 分钟更新一次(使用 UPDATE,保留旧行)。我还有一个页面来显示这些表中的最新数据。

问题:有时页面只显示当前行的一部分,因为它们在那个确切的时刻被更新(我说的是大约 15 秒,所以用户有时可能会遇到我想要的这种“假”数据防止)

我的想法是在所有 UPDATE 内容发生之前在另一个数据库中将值设置为 1,并在完成后将其设置回 0。在显示页面上,我会检查值是 0 还是 1,如果数据不完整,则会显示错误页面。问题是更新脚本将值设置为 1 但立即将其设置回 0。我尝试使用 mysqli_unbuffered_query() 进行更新查询,但这并没有改变任何内容,而是使脚本在某些行后停止。

你知道我该如何解决这个问题吗?提前致谢。

0 投票
4 回答
3846 浏览

c - C - read() 添加一个'\ 0'吗?

它必须吗?我一直对这类东西很模糊,但如果我有类似的东西:

除了那些函数返回-1的情况之外,这里是否有可能出错?

如果它只读取 40 个字符,它会在后面加上 \0 吗?(并且会写入识别 \0 并停止?另外,如果要读取 256 个字符,那么在这 256 个字符之后是否有 \0?