问题标签 [buffering]

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 投票
4 回答
946 浏览

c++ - 给新手处理线程失控的问题

好的,据您所知,我将解释这个问题:我正在使用一个名为 ClanLIB 的库(不是我的选择),该库 SEEMLY(我不确定,甚至阅读源代码)创建了一个处理声音的线程。

该线程在缓冲区为空时尝试获取更多数据,通常这会导致数据生成库太慢而无法在声卡到达缓冲区结束之前提供更多数据时导致欠载。

所以我添加了我自己的线程,它不断在背景上产生声音。

这工作得很好,除了我自己的线程有时会劫持过多的 CPU 时间并冻结其他所有内容。为了解决这个问题,我添加了条件等待。

当缓冲区已满时发生条件等待,当 ClanLIB 请求更多数据时,会发出等待信号,因此缓冲区写入线程会恢复(直到再次满)。

我的问题是,由于我添加了这个条件等待、ClanLIB 声音线程和我自己的音乐线程,有时会“失控”,在应用程序的其余部分冻结时播放音乐。

什么样的奇怪情况会导致这种情况?

伪代码:

0 投票
5 回答
70956 浏览

stdout - 如何使任何 shell 命令的输出无缓冲?

有没有办法在没有输出缓冲的情况下运行 shell 命令?

例如,hexdump file | ./my_script只会将来自 hexdump 的输入以缓冲块的形式传递给 my_script,而不是逐行传递。

其实我想知道一个通​​用的解决方案如何使任何命令无缓冲?

0 投票
6 回答
20847 浏览

python - 为 sys.stdin 设置较小的缓冲区大小?

我正在使用以下 bash 命令模式运行 memcached:

尝试在整个平台范围内追踪无与伦比的 get 设置。

memtracer 脚本在下面,可以按需要工作,但有一个小问题。观察中间日志文件的大小,直到 memkeywatchYMD.log 的大小约为 15-18K,memtracer.py 才开始获取输入。有没有更好的读取标准输入的方法,或者可能有一种方法可以将缓冲区大小减少到 1k 以下以加快响应时间?

0 投票
4 回答
19300 浏览

php - PHP CLI:如何从 TTY 读取单个字符的输入(无需等待回车键)?

我想从 PHP 的命令行一次读取一个字符,但是似乎有某种输入缓冲从某处阻止了这一点。

考虑这段代码:

输入“foo”作为输入(并按回车键),我得到的输出是:

期待的输出是:

(也就是说,字符在输入时被读取和处理)。

但是,目前,每个字符只有在按下 enter 后才会被读取。我怀疑 TTY 正在缓冲输入。

最终我希望能够阅读诸如向上箭头、向下箭头等按键。

0 投票
3 回答
1486 浏览

java - 解析文本 - Scanner 还是 BufferedReader?

对于我的数据结构类,第一个项目需要解析歌曲的文本文件。

输入的一个例子是:
ARTIST="unknown"
TITLE="Rockabye Baby"
LYRICS="Rockabye baby in the treetops
当风吹你的摇篮时,你的摇篮会摇晃
当弓折断时,你的摇篮会掉下
来 Down will come baby cradle and all
"

我想知道将艺术家、标题和歌词提取到 Song 类中各自的字符串字段的最佳方法。我的第一反应是使用扫描仪,输入第一个字符,然后根据字母,使用 skip() 前进所需的字符并读取引号之间的文本。

如果我使用它,我将失去缓冲输入的能力。完整的歌曲文本文件有超过 422K 行文本。即使没有缓冲,扫描仪也能处理这个问题吗?

0 投票
5 回答
3136 浏览

perl - Perl:避免从标准输入贪婪阅读?

考虑以下 perl 脚本 ( read.pl):

如果从命令行执行此脚本,它将获取第一行输入,同时cat获取其他所有内容,直到输入结束(^D按下)。

但是,当输入从另一个进程通过管道传输或从文件中读取时,情况就不同了:

Perl 似乎很容易在某处缓冲整个输入,并且使用反引号或系统调用的进程看不到任何输入。

问题是我想对一个混合<STDIN>并调用其他进程的脚本进行单元测试。最好的方法是什么?我可以在 perl 中关闭输入缓冲吗?或者我可以以“模仿”终端的方式假脱机数据吗?

0 投票
1 回答
11456 浏览

html - 在 HTML5 视频播放器中获取缓冲进度值

在 Firefox 中,当我看到此示例中的简单视频元素时,它具有默认浏览器控件。页面加载后立即开始加载视频;我看到缓冲(加载)线是如何移动到默认浏览器控件的右侧的。

我怎样才能得到这个缓冲区的值?

我尝试了许多不同的方法,包括video.bufferedand progress event listenerwith e.total, e.loaded

我有 Firefox 3.6.3,它似乎不支持.buffered.total / .loaded.

默认浏览器控件如何初始化此缓冲进度?

顺便说一句,我还有其他不同 HTML5 播放器的示例,它们的功能与默认浏览器控件相同:

0 投票
0 回答
602 浏览

silverlight - Silverlight 媒体元素缓冲

我希望通过 mediaElement 控制面板以实时模式播放从网络接收到的语音数据。为此,需要控件不应缓冲。

MSDN 只写默认值为 5mp 但我尝试将其设置为“0”或低于“1”秒,但它仍在根据 1 秒缓冲数据。

有人遇到过这个问题吗?有什么建议吗?

谢谢。

0 投票
4 回答
26688 浏览

php - 如何使用 PHP 流式传输媒体文件?

我正在尝试构建一个应用程序,我必须在其中将媒体文件(音频和视频)流式传输到浏览器。我正在通过 php 读取文件并将数据发送到浏览器。我正在使用以下代码。

一切正常,除了当我尝试转发视频或音频时(我的意思是假设当前播放位置是 0:15,它直接转到 1:25),媒体停止,当我再次按下播放按钮时,它从头开始。

我认为问题出在缓冲上,但无法弄清楚。我在标题中做错了什么还是需要其他东西。

谢谢。

0 投票
1 回答
248 浏览

c# - 使用 C# 2005 在 Windows 应用程序中进行分页和数据缓冲

要求
.NET Windows 应用程序使用 C# 与 Oracle DB 交互以检索和保存数据

问题
数据量大,性能慢,内存占用高,应用程序将整个数据显示在屏幕上。由于数据库调用和客户端数据处理,响应时间很长

建议的解决方案
使用分页(来自Oracle DB)在屏幕上显示部分数据,应用程序的响应时间会更快;但是,它将为每个页面进行数据库调用。我们正在寻找一种从 DB 获取第一页数据并启动应用程序的解决方案,之后将有一个后台作业将其余数据从 DB 获取到本地 XML DB。因此,在下一页的情况下,数据将从 XML 加载,而不是进行 DB 调用。

这种设计可行吗?
本地 XML DB 和 Oracle DB 之间是否可以同步?