问题标签 [buffer]

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 投票
5 回答
29241 浏览

ruby - 为什么 Ruby 没有真正的 StringBuffer 或 StringIO?

我最近阅读了一篇关于在 Ruby中使用的好文章。StringIO然而,作者没有提到的是,这StringIO只是一个“我”。没有“O”。你不能这样做,例如:

Ruby 确实需要一个 StringBuffer,就像 Java 一样。StringBuffers 有两个重要用途。首先,它们让您测试 Ruby 的 StringIO 所做的输出的一半。其次,它们对于从小部分构建长弦很有用——乔尔一遍又一遍地提醒我们的东西是非常非常缓慢的。

有没有好的替代品?

Ruby 中的字符串确实是可变的,但这并不意味着我们应该始终依赖该功能。如果stuff很大,例如这对性能和内存的要求真的很差。

在 Java 中执行此操作的“正确”方法是:

虽然我的 Java 有点生疏。

0 投票
3 回答
57982 浏览

python - Python中的二进制缓冲区

在 Python 中,您可以使用StringIO作为字符数据的类似文件的缓冲区。内存映射文件基本上对二进制数据做类似的事情,但它需要一个文件作为基础。Python 是否有一个用于二进制数据并且仅是内存的文件对象,相当于 Java 的ByteArrayOutputStream

我的用例是我想在内存中创建一个 ZIP 文件,而ZipFile需要一个类似文件的对象。

0 投票
4 回答
15828 浏览

java - 读取所有字符时是否有理由使用 BufferedReader 而不是 InputStreamReader?

我目前使用以下函数来做一个简单的 HTTP GET。

我认为没有理由使用,BufferedReader因为我只是要按顺序下载所有内容。我认为BufferedReader在这种情况下没有用是正确的吗?

0 投票
1 回答
1706 浏览

.net - 使用 .net 托管代码抓取命令窗口的屏幕

我正在 dot net 中编写一个程序,它将使用框架 2.0 的 Process 对象执行脚本和命令行程序。我希望能够在我的程序中访问进程的屏幕缓冲区。我对此进行了调查,看来我需要访问控制台标准输出和标准错误缓冲区。有人知道这是如何使用托管代码完成的吗?

我想我需要使用附加到任务的 Windows 控制台的 AttachConsole 和 ReadConsoleOutput,以便从控制台屏幕读取字符和属性数据块。我需要做的是托管代码。

请参阅http://msdn.microsoft.com/en-us/library/ms684965(VS.85).aspx

0 投票
4 回答
1687 浏览

javascript - 是什么使它成为在 Web 浏览器中打印 1 到 1,000,000(以空格分隔)的最快 JavaScript?

我在这里阅读有关 JavaScript 中的输出缓冲的信息并试图了解作者所说的在网页上打印 1 到 1,000,000 的速度最快的脚本。(向下滚动到标题“中奖百万数字脚本”。)研究了一下,我有几个问题:

  • 与其他方法相比,是什么让这个脚本如此高效?
  • 为什么缓冲会加快速度?
  • 您如何确定要使用的正确缓冲区大小?
  • 这里有没有人有任何技巧可以进一步优化这个脚本?

(我意识到这可能是 CS101,但我是那些该死的、自学成才的黑客之一,我希望能从集体的智慧中受益。谢谢!)

0 投票
5 回答
3857 浏览

java - 缓冲一个大文件;BufferedInputStream 限制为 2gb;数组限制为 2^31 字节

我正在按顺序处理一个大文件,我想将其中的一大块保存在内存中,在 64 位系统上可用 16gb 内存。

一种快速而肮脏的方法是这样做,只需将输入流包装到缓冲输入流中,不幸的是,这只给了我一个 2gb 的缓冲区。我想有更多的记忆,我有什么选择?

0 投票
3 回答
2562 浏览

winapi - 你如何写一个用 FILE_FLAG_NO_BUFFERING 打开的文件的结尾?

我正在使用 VB6 和 Win32 API 将数据写入文件,此功能用于导出数据,因此写入磁盘的性能是我考虑的关键因素。因此,我在通过调用打开文件时使用FILE_FLAG_NO_BUFFERING和选项。FILE_FLAG_WRITE_THROUGHCreateFile

FILE_FLAG_NO_BUFFERING要求我使用自己的缓冲区并将数据以磁盘扇区大小的倍数写入文件,这通常没有问题,除了数据的最后一部分,如果它不是扇区大小的精确倍数将包括字符零填充文件,一旦写入最后一个块以不包含这些字符零,如何设置文件大小?

我可以使用SetEndOfFile,但这需要我关闭文件并重新打开它而不使用FILE_FLAG_NO_BUFFERING. 我见过有人谈论NtSetInformationFile但是我找不到如何在 VB6 中使用和声明它。SetFileInformationByHandle可以做我想要的,但是它只在 Windows Vista 中可用,我的应用程序需要与以前版本的 Windows 兼容。

0 投票
2 回答
1777 浏览

vim - 在 Vim 中重置缓冲区

是否可以将 vim 会话中的备用缓冲区重置为以前的缓冲区?

备用缓冲区是指# 所指的缓冲区,即输入cntl-^ 时显示的缓冲区。

假设我打开了两个文件 main.c 和 other.c 并且 :ls 给了我:

假设我打开另一个文件,例如refer.c, :ls 现在会给我:

如果我删除包含 refer.c 的缓冲区, :ls 现在会显示:

但是如果我做一个cntl-^,refer.c会再次显示!

有没有办法让 vim 将备用缓冲区自动重置回上次的状态?备用缓冲区的“历史”?

还是我坚持做 a :2 b 将 other.c 重新加载到备用缓冲区?

或者也许这种行为有充分的理由?

0 投票
2 回答
6699 浏览

java - 使用 Java 创建 .zip 存档的缓冲区大小是多少?

我使用此代码创建一个带有文件列表的 .zip:

我不知道 zip 算法和 ZipOutputStream 是如何工作的,如果它在我读取所有数据并将其发送到“zos”之前写了一些东西,那么结果文件的字节大小可能与我选择另一个缓冲区大小不同。

换句话说,我不知道算法是否像:

读取数据-->处理数据-->创建.ZIP

或者

读取数据块-->处理数据块-->在 .ZIP 中写入块-->| ^------------------------------------------------- -------------------------------------------------- --------------------------

如果是这种情况,最好的缓冲区大小是多少?

更新:

我已经测试了这段代码,将缓冲区大小从 1024 更改为 64,并压缩相同的文件:1024 字节的 80 KB 结果文件比 64 字节缓冲区小 3 个字节。在最快的时间内生成最小的 .zip 的最佳缓冲区大小是多少?

0 投票
9 回答
120304 浏览

java - 使用 FileInputStream 时如何确定理想的缓冲区大小?

我有一种从文件创建 MessageDigest(哈希)的方法,我需要对很多文件(> = 100,000)执行此操作。我应该使用于从文件中读取的缓冲区有多大以最大限度地提高性能?

大多数人都熟悉基本代码(为了以防万一,我将在这里重复):

最大化吞吐量的理想缓冲区大小是多少?我知道这是系统依赖的,我很确定它的操作系统、文件系统硬盘驱动器依赖,并且可能还有其他硬件/软件混合在一起。

(我应该指出,我对 Java 有点陌生,所以这可能只是一些我不知道的 Java API 调用。)

编辑:我不提前知道这将用于哪种系统,所以我不能假设很多。(出于这个原因,我使用 Java。)

编辑:上面的代码缺少诸如 try..catch 之类的东西以使帖子更小