问题标签 [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.
ruby - 为什么 Ruby 没有真正的 StringBuffer 或 StringIO?
我最近阅读了一篇关于在 Ruby中使用的好文章。StringIO
然而,作者没有提到的是,这StringIO
只是一个“我”。没有“O”。你不能这样做,例如:
Ruby 确实需要一个 StringBuffer,就像 Java 一样。StringBuffers 有两个重要用途。首先,它们让您测试 Ruby 的 StringIO 所做的输出的一半。其次,它们对于从小部分构建长弦很有用——乔尔一遍又一遍地提醒我们的东西是非常非常缓慢的。
有没有好的替代品?
Ruby 中的字符串确实是可变的,但这并不意味着我们应该始终依赖该功能。如果stuff
很大,例如这对性能和内存的要求真的很差。
在 Java 中执行此操作的“正确”方法是:
虽然我的 Java 有点生疏。
python - Python中的二进制缓冲区
在 Python 中,您可以使用StringIO作为字符数据的类似文件的缓冲区。内存映射文件基本上对二进制数据做类似的事情,但它需要一个文件作为基础。Python 是否有一个用于二进制数据并且仅是内存的文件对象,相当于 Java 的ByteArrayOutputStream?
我的用例是我想在内存中创建一个 ZIP 文件,而ZipFile需要一个类似文件的对象。
java - 读取所有字符时是否有理由使用 BufferedReader 而不是 InputStreamReader?
我目前使用以下函数来做一个简单的 HTTP GET。
我认为没有理由使用,BufferedReader
因为我只是要按顺序下载所有内容。我认为BufferedReader
在这种情况下没有用是正确的吗?
.net - 使用 .net 托管代码抓取命令窗口的屏幕
我正在 dot net 中编写一个程序,它将使用框架 2.0 的 Process 对象执行脚本和命令行程序。我希望能够在我的程序中访问进程的屏幕缓冲区。我对此进行了调查,看来我需要访问控制台标准输出和标准错误缓冲区。有人知道这是如何使用托管代码完成的吗?
我想我需要使用附加到任务的 Windows 控制台的 AttachConsole 和 ReadConsoleOutput,以便从控制台屏幕读取字符和属性数据块。我需要做的是托管代码。
请参阅http://msdn.microsoft.com/en-us/library/ms684965(VS.85).aspx
javascript - 是什么使它成为在 Web 浏览器中打印 1 到 1,000,000(以空格分隔)的最快 JavaScript?
我在这里阅读有关 JavaScript 中的输出缓冲的信息,并试图了解作者所说的在网页上打印 1 到 1,000,000 的速度最快的脚本。(向下滚动到标题“中奖百万数字脚本”。)研究了一下,我有几个问题:
- 与其他方法相比,是什么让这个脚本如此高效?
- 为什么缓冲会加快速度?
- 您如何确定要使用的正确缓冲区大小?
- 这里有没有人有任何技巧可以进一步优化这个脚本?
(我意识到这可能是 CS101,但我是那些该死的、自学成才的黑客之一,我希望能从集体的智慧中受益。谢谢!)
java - 缓冲一个大文件;BufferedInputStream 限制为 2gb;数组限制为 2^31 字节
我正在按顺序处理一个大文件,我想将其中的一大块保存在内存中,在 64 位系统上可用 16gb 内存。
一种快速而肮脏的方法是这样做,只需将输入流包装到缓冲输入流中,不幸的是,这只给了我一个 2gb 的缓冲区。我想有更多的记忆,我有什么选择?
winapi - 你如何写一个用 FILE_FLAG_NO_BUFFERING 打开的文件的结尾?
我正在使用 VB6 和 Win32 API 将数据写入文件,此功能用于导出数据,因此写入磁盘的性能是我考虑的关键因素。因此,我在通过调用打开文件时使用FILE_FLAG_NO_BUFFERING
和选项。FILE_FLAG_WRITE_THROUGH
CreateFile
FILE_FLAG_NO_BUFFERING
要求我使用自己的缓冲区并将数据以磁盘扇区大小的倍数写入文件,这通常没有问题,除了数据的最后一部分,如果它不是扇区大小的精确倍数将包括字符零填充文件,一旦写入最后一个块以不包含这些字符零,如何设置文件大小?
我可以使用SetEndOfFile
,但这需要我关闭文件并重新打开它而不使用FILE_FLAG_NO_BUFFERING
. 我见过有人谈论NtSetInformationFile
但是我找不到如何在 VB6 中使用和声明它。SetFileInformationByHandle
可以做我想要的,但是它只在 Windows Vista 中可用,我的应用程序需要与以前版本的 Windows 兼容。
vim - 在 Vim 中重置缓冲区
是否可以将 vim 会话中的备用缓冲区重置为以前的缓冲区?
备用缓冲区是指# 所指的缓冲区,即输入cntl-^ 时显示的缓冲区。
假设我打开了两个文件 main.c 和 other.c 并且 :ls 给了我:
假设我打开另一个文件,例如refer.c, :ls 现在会给我:
如果我删除包含 refer.c 的缓冲区, :ls 现在会显示:
但是如果我做一个cntl-^,refer.c会再次显示!
有没有办法让 vim 将备用缓冲区自动重置回上次的状态?备用缓冲区的“历史”?
还是我坚持做 a :2 b 将 other.c 重新加载到备用缓冲区?
或者也许这种行为有充分的理由?
java - 使用 Java 创建 .zip 存档的缓冲区大小是多少?
我使用此代码创建一个带有文件列表的 .zip:
我不知道 zip 算法和 ZipOutputStream 是如何工作的,如果它在我读取所有数据并将其发送到“zos”之前写了一些东西,那么结果文件的字节大小可能与我选择另一个缓冲区大小不同。
换句话说,我不知道算法是否像:
读取数据-->处理数据-->创建.ZIP
或者
读取数据块-->处理数据块-->在 .ZIP 中写入块-->| ^------------------------------------------------- -------------------------------------------------- --------------------------
如果是这种情况,最好的缓冲区大小是多少?
更新:
我已经测试了这段代码,将缓冲区大小从 1024 更改为 64,并压缩相同的文件:1024 字节的 80 KB 结果文件比 64 字节缓冲区小 3 个字节。在最快的时间内生成最小的 .zip 的最佳缓冲区大小是多少?
java - 使用 FileInputStream 时如何确定理想的缓冲区大小?
我有一种从文件创建 MessageDigest(哈希)的方法,我需要对很多文件(> = 100,000)执行此操作。我应该使用于从文件中读取的缓冲区有多大以最大限度地提高性能?
大多数人都熟悉基本代码(为了以防万一,我将在这里重复):
最大化吞吐量的理想缓冲区大小是多少?我知道这是系统依赖的,我很确定它的操作系统、文件系统和硬盘驱动器依赖,并且可能还有其他硬件/软件混合在一起。
(我应该指出,我对 Java 有点陌生,所以这可能只是一些我不知道的 Java API 调用。)
编辑:我不提前知道这将用于哪种系统,所以我不能假设很多。(出于这个原因,我使用 Java。)
编辑:上面的代码缺少诸如 try..catch 之类的东西以使帖子更小