草庐IT

缓冲池

全部标签

java - 在 Java 中缓冲输出流是否比输入流更有效?

今天早些时候感到无聊,我开始思考Java中缓冲字节流和非缓冲字节流的相对性能。作为一个简单的测试,我下载了areasonablylargetextfile并编写了一个简短的程序来确定缓冲流在复制文件时的影响。进行了四项测试:使用无缓冲的输入和输出字节流复制文件。使用缓冲输入流和非缓冲输出流复制文件。使用无缓冲输入流和缓冲输出流复制文件。使用缓冲的输入和输出流复制文件。不出所料,使用缓冲输入和输出流比使用无缓冲流快几个数量级。然而,真正有趣的事情(至少对我而言)是案例2和案例3之间的速度差异。一些示例结果如下:Unbufferedinput,unbufferedoutputTime:36

java - BufferedReader 默认缓冲区大小?

根据thedocumentation,BufferedReader(Reader)使用默认缓冲区大小,而第二个构造函数BufferedReader(Reader,int)允许设置缓冲区大小。publicBufferedReader(Readerin)Createsabufferingcharacter-inputstreamthatusesadefault-sizedinputbuffer.但是,文档没有提到默认缓冲区大小是多少。BufferedReader的默认缓冲区大小是多少? 最佳答案 默认缓冲区大小为8192个字符http:

java - DataOutputStream() VS DataOutputStream(新缓冲输出流())

代码在JavaTutorials显示了使用DataOutputStream类和DataInputStream类的示例。代码片段如下所示://..out=newDataOutputStream(newBufferedOutputStream(newFileOutputStream(dataFile)));//..in=newDataInputStream(newBufferedInputStream(newFileInputStream(dataFile)));//..我想知道为什么在我们创建一个新的DataOutputStream时需要创建一个新的BufferedOutputStrea

【c语言】键盘缓冲区

目录什么是键盘缓冲区?读取键盘缓冲区的常见函数1.getchar()函数:2.scanf()函数:3.fgets()函数:键盘缓冲区所带来的错误举例如何清理键盘缓冲区?1.使用循环读取字符:2.使用fflush(stdin)函数:3.忽略换行符:什么是键盘缓冲区?当我们在计算机上输入字符时,这些字符并不会立即被程序处理。相反,它们首先被存储在一个称为键盘缓冲区的临时存储区域中。键盘缓冲区允许程序以适当的方式处理键盘输入,并在需要时获取输入。在本博客中,我们将使用C语言中键盘缓冲区及其使用。键盘缓冲区是由操作系统提供和管理的。当用户在键盘上按下一个键时,键盘控制器将该键的字符数据发送给计算机的操

Linux——缓冲区&&封装系统文件操作

📘北尘_:个人主页🌎个人专栏:《Linux操作系统》《经典算法试题》《C++》《数据结构与算法》☀️走在路上,不忘来时的初心文章目录一、FILE二、封装系统接口实现文件操作1、text.c2、mystdio.c3、mystdio.h一、FILE因为IO相关函数与系统调用接口对应,并且库函数封装系统调用,所以本质上,访问文件都是通过fd访问的。所以C库当中的FILE结构体内部,必定封装了fd。来段代码在研究一下#include#includeintmain(){constchar*msg0="helloprintf\n";constchar*msg1="hellofwrite\n";constc

c++ - 大型缓冲区与大型静态缓冲区,有优势吗?

考虑以下代码。在1000次连续执行中,DoSomething1()是否比DoSomething2()更快?我会假设如果我在哪里调用DoSomething1()1000次它会比调用DoSomething2()1000次更快。将我所有的大缓冲区设为静态有什么缺点吗?#defineMAX_BUFFER_LENGTH1024*5voidDoSomething1(){staticcharbuf[MAX_BUFFER_LENGTH];memset(buf,0,MAX_BUFFER_LENGTH);}voidDoSomething2(){charbuf[MAX_BUFFER_LENGTH];mems

C++ 缓冲区溢出

我正在尝试自学C++中的缓冲区溢出和利用。我充其量只是一个中级C++人,所以请多多包涵。我已经学习了一些教程,但这里有一些示例代码来说明我的问题:#include#includeusingnamespacestd;intmain(){begin:intauthentication=0;charcUsername[10],cPassword[10];charcUser[10],cPass[10];cout>cUser;cout>cPass;strcpy(cUsername,cUser);strcpy(cPassword,cPass);if(strcmp(cUsername,"admin"

c++ - 如何在 C++ 中为缓冲区分配更多内存?

我有指针str:char*str=newchar[10];我使用str指向的内存块来存储数据。如何为str指向的缓冲区分配更多字节,而不丢失缓冲区中存储的旧数据? 最佳答案 改为使用std::string。它会做你需要的,而不用担心分配、复制等。你仍然可以通过c_str()函数访问原始内存。甚至std::vector会很适合你。 关于c++-如何在C++中为缓冲区分配更多内存?,我们在StackOverflow上找到一个类似的问题: https://stack

C++线程安全环形缓冲区实现

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我正在用C++进行多线程编程,我想知道是否有C++中环形缓冲区的线程安全实现,或者您是否知道我如何实现它。

c++ - 写入 OpenGL 模板缓冲区

我一直在阅读OpenGL中的模板缓冲区。基本概念是有道理的;只有在与模板缓冲区中的值按位与运算后满足特定条件时,才会绘制片段。但是我不明白的一件事是你实际上是如何写入模板缓冲区的。是否有我在这里缺少的功能?附言当我说写入时,我的意思是在模板缓冲区中指定特定的值。 最佳答案 没有人回答这个问题,这是一个有效的问题,所以一年多后,这里是您问题的答案。stencilbuffer理论上和backbuffer、depthbuffer一样是一个缓冲区。他们三个被同时写入(启用时)。您可以通过特定调用启用/禁用写入它们:glColorMask(r