TCP粘包/拆包什么是TCP粘包/拆包问题TCP以流方式传输,是没有界限的一串数据,并没有消息边界。-TCP传输数据时,会根据底层的TCP缓存区实际情况进行数据包划分:-1.业务上定义的完整数据(比方说一个完整的json串),可能会被TCP拆分成多个数据包进行发送(拆包)。-2.业务上特殊含义的独立数据,也有可能因为大小或者缓冲区原因,被TCP封装成一个大数据包发送(粘包)。通过一个图来理解通过图
分类:
其他好文 时间:
2020-02-26 17:14:11
阅读次数:
77
1、vim基本使用在终端键入vim命令和要编辑的文件的名字就可以启动vim编辑器(如在启动vim时未指定文件名,或是这个文件不存在,vim会开辟一段新的缓冲区域来编辑)。vim编辑器有两种操作模式:普通模式插入模式刚启动vim编辑器,默认进入普通模式,在这个模式下,vim编辑器会将按键解释成命令(这也是vim特殊的地方,很多没有使用过vim的人刚开始打开vim时会被这个模式吓倒,毕竟在键盘上按键但
分类:
系统相关 时间:
2020-02-26 12:50:12
阅读次数:
92
一、Off Screen Rendering 离屏渲染,指的是 GPU 在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。 离屏渲染的数量才是影响 app 交互性能的根源。 离屏渲染耗时是发生在离屏这个动作上面,而不是渲染。原因主要在于创建缓冲区和上下文切换。创建新的缓冲区代价都不算大,付出最大代价 ...
分类:
其他好文 时间:
2020-02-26 01:23:10
阅读次数:
67
在每个maptask的结束,我们拿到的是<K,V>的队列,在Reduce中,输入的是<K,Iterable V>。在中间有一个被称为Shuffle的工作,将Maptask的数据按Key排序。其主要的工作,大体上讲1.完整地从map task端拉取数据到reduce端。2.在跨节点拉取数据时,尽可能地 ...
分类:
其他好文 时间:
2020-02-26 01:11:33
阅读次数:
80
一、什么是缓冲流 缓冲流的内部都包含一个缓冲区,通过缓冲区读写,可以提高了IO流的读写速度。 二、缓冲流+字节流复制文件 //明确数据源 FileInputStream fis=new FileInputStream("D:\\java1018\\buffer.txt"); //明确目的地 File ...
分类:
其他好文 时间:
2020-02-25 13:01:44
阅读次数:
62
参考: https://www.cnblogs.com/charlesblc/p/6263665.html mmap使用细节 1、使用mmap需要注意的一个关键点是,mmap映射区域大小必须是物理页大小(page_size)的整倍数(32位系统中通常是4k字节)。原因是,内存的最小粒度是页,而进程虚 ...
分类:
数据库 时间:
2020-02-25 09:22:05
阅读次数:
65
首先简要回顾一下缓冲区溢出的攻击大系: ◆栈溢出(stack smashing) 未检查输入缓冲区长度,导致数组越界,覆盖栈中局部变量空间之上的栈桢指针%ebp以及函数返回地址retaddr,当函数返回执行ret指令时,retaddr从栈中弹出,作为下一条指令的地址赋给%eip寄存器,继而改变原程序 ...
分类:
其他好文 时间:
2020-02-23 22:35:56
阅读次数:
91
NIO Buffer 属性 capacity:表示内部容量的大小 position:表示当前的位置 limit:表示读写的最大上限 初始化 方法 put(): 放入数据到缓冲区 flip(): 翻转 get():从缓冲区获取数据 rewind():倒带重新读取数据 mark()和reset(): 标 ...
分类:
编程语言 时间:
2020-02-22 12:07:36
阅读次数:
79
1.索引 1.1 数据查询缓存和缓冲区 ##再次查询会不会比第一次快,为什么会比第一次查询快? ##1.默认query_cahce是开启的,如果查询缓存开启了,第一次查询数据的时候,读取的是数据文件,第二次会执行查询缓存,所以第二次查询会很快 ##如果数据更新,需要重新再缓存 SHOW GLOBAL ...
分类:
数据库 时间:
2020-02-20 13:34:23
阅读次数:
80
设备读写方式共三种: 方式 Flag 特点 缓冲区方式读写 DO_BUFFERED_IO I/O管理器先创建一个与用户模式数据缓冲区大小相等的系统缓冲区。而你的驱动程序将使用这个系统缓冲区工作。I/O管理器负责在系统缓冲区和用户模式缓冲区之间复制数据。 直接方式读写 DO_DIRECT_IO I/O ...