NotifyMyFrontEnd 函数背后的数据缓冲区(三)

简介:

为了验证对数据缓冲区 PqSendBuffer写入数据未满时,也要进行flush。对代码进行如下修改:

pqcomm.c 的 internal_putbytes 函数:

头部加入:

fprintf(stderr,"len is: %d",len);                    
fprintf(stderr,"  ,   PqSendPointer is: %d\n", PqSendPointer);

pqcomm.c 的pq_flush 函数:
头部加入:

fprintf(stderr,"  pq_flush is called\n.");

重新编译后,启动Postgresql(非后台方式,为了看到信息),然后启动一个psql。

此时看到一大堆的 

len is:xx
PqSendPointer is: yy
...
len is:xx
PqSendPointer is: yy  

然后是 pq_flush is called。最后一个PqSendPointer 远小于 PQSendBuffer大小(8092)。

再开一个psql,也是如此。如果发listen 和notify ,也是如此。









本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/07/17/2595167.html,如需转载请自行联系原作者

目录
相关文章
|
5月前
|
存储 缓存 移动开发
日常小知识点之用户层网络缓冲区(固定内存,ringbuffer,chainbuffer)
日常小知识点之用户层网络缓冲区(固定内存,ringbuffer,chainbuffer)
67 0
|
5月前
|
消息中间件 存储 中间件
消息流是指在计算机系统中,消息从一个地方传递到另一个地方的过程
消息流是指在计算机系统中,消息从一个地方传递到另一个地方的过程
36 1
|
9月前
|
存储 C语言 C++
深度剖析数据在内存中的储存
深度剖析数据在内存中的储存
94 0
|
12月前
|
存储 C语言
内存的读写过程、现实模型及指针
内存的读写过程、现实模型及指针
116 0
内存的读写过程、现实模型及指针
|
12月前
|
5G
带你读《5G 系统技术原理与实现》——3.2.2 eMBB 帧结构及应用
带你读《5G 系统技术原理与实现》——3.2.2 eMBB 帧结构及应用
|
12月前
|
5G
带你读《5G 系统技术原理与实现》——3.2.1 5G 帧结构
带你读《5G 系统技术原理与实现》——3.2.1 5G 帧结构
|
12月前
|
存储 消息中间件 NoSQL
计网 - 流和缓冲区:缓冲区的 flip 是怎么回事?
计网 - 流和缓冲区:缓冲区的 flip 是怎么回事?
70 0
|
存储 编译器 C语言
缓冲区刷新在 C++ 中意味着什么?
缓冲区刷新是将计算机数据从临时存储区域传输到计算机的永久内存。例如,如果我们对文件进行任何更改,我们在一台计算机屏幕上看到的更改会临时存储在缓冲区中。
114 0