ffmpeg缓冲bufferr到底如何理解其本质

Linux-手动释放缓存(Buffer、Cache)
手动释放缓存
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对
当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下:
[root@server
test]# cat /proc/sys/vm/drop_caches
首先,/proc/sys/vm/drop_caches的值,默认为0。
[root@server
test]# sync
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync
命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O
和读写映射文件)
[root@server
test]# echo 3 & /proc/sys/vm/drop_caches
[root@server test]# cat /proc/sys/vm/drop_caches
将/proc/sys/vm/drop_caches值设为3
[root@server
test]# free -m
total used free shared buffers cached
Mem: 249 66 182 0 0 11
-/+ buffers/cache: 55 194
Swap: 511 0 511
再来运行free命令,会发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB。那么有效的释放了buffer和cache。
◎ 有关/proc/sys/vm/drop_caches的用法在下面进行了说明
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to
To free pagecache, use echo 1 &
/proc/sys/vm/drop_ to
free dentries and inodes, use echo 2 &
/proc/sys/vm/drop_
to free pagecache, dentries and inodes, use echo 3
/proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects
are not freeable, the user should run sync first.
上述文章就长期以来很多用户对Linux内存管理方面的疑问,给出了一个比较“直观”的回复,我更觉得有点像是核心开发小组的妥协。
对于是否需要使用这个值,或向用户提及这个值,我是有保留意见的:
1、从man可以看到,这值从2.6.16以后的核心版本才提供,也就是老版的操作系统,如红旗DC 5.0、RHEL
4.x之前的版本都没有;
2、若对于系统内存是否够用的观察,我还是原意去看swap的使用率和si/so两个值的大小;
用户常见的疑问是,为什么free这么小,是否关闭应用后内存没有释放?
但实际上,我们都知道这是因为Linux对内存的管理与Windows不同,free小并不是说内存不够用了,应该看的是free的第二行最后一个值:
-/+ buffers/cache: 58 191
这才是系统可用的内存大小。
实际项目中告诉我们,如果因为是应用有像内存泄露、溢出的问题,从swap的使用情况是可以比较快速可以判断的,但free上面反而比较难查看。
相反,如果在这个时候,我们告诉用户,修改系统的一个值,“可以”释放内存,free就大了。用户会怎么想?不会觉得操作系统“有问题”吗?
所以说,我觉得既然核心是可以快速清空buffer或cache,也不难做到(这从上面的操作中可以明显看到),但核心并没有这样做(默认值是0),我们就不应该随便去改变它。
一般情况下,应用在系统上稳定运行了,free值也会保持在一个稳定值的,虽然看上去可能比较小。
当发生内存不足、应用获取不到可用内存、OOM错误等问题时,还是更应该去分析应用方面的原因,如用户量太大导致内存不足、发生应用内存溢出等情况,否则,清空buffer,强制腾出free的大小,可能只是把问题给暂时屏蔽了。
我觉得,排除内存不足的情况外,除非是在软件开发阶段,需要临时清掉buffer,以判断应用的内存使用情况;或应用已经不再提供支持,即使应用对内存的
时候确实有问题,而且无法避免的情况下,才考虑定时清空buffer。(可惜,这样的应用通常都是运行在老的操作系统版本上,上面的操作也解决不了)。&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。  三态缓冲器
  三态缓冲器(Three-state-buffer),又称为三态门、三态驱动器,其三态输出受到使能输出端的控制,当使能输出有效时,器件实现正常逻辑状态输出(逻辑0、逻辑1),当使能输入无效时,输出处于高阻状态,即等效于与所连的电路断开。
  缓冲器是数字元件的其中一种,它对输入值不执行任何运算,其输出值和输入值一样,但它在计算机的设计中有着重要作用。
  缓冲器分为两种,常用缓冲器(常规缓冲器)和三态缓冲器。常规缓冲器总是将值直接输出,用在推进电流到高一级的电路系统。三态缓冲器除了常规缓冲器的功能外,还有一个选项卡通输入端,用E表示。当E=0和E=1时有不同的输出值。
  缓冲器又可以分为输入缓冲器和输出缓冲器两种。前者的作用是将
送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现
的同步。由于缓冲器接在
上,故必须具有三态输出功能。
  当E=1时,选通,其输入直接送到输出;
  若E=0,缓冲器被阻止,无论输入什么值,输出的总是高阻态,用Z表示。高阻态能使电流降到足够低,以致于类似缓冲器的输出没有与任何东东相连。
  原理图
  EDA代码
  use IEEE.STD_LOGIC_1164.
  ENTITY BUF3S IS
  PORT (INPUT:IN STD_LOGIC_VECTOR;
  ENABLE:IN STD_LOGIC;
  OUTPUT:OUT STD_LOGIC_VECTOR);
  END BUF3S;
  ARCHITECTURE BHV OF BUF3S IS
  PROCESS(ENABLE,INPUT)
  IF ENABLE='1'THEN OUTPUT&=INPUT;
  ELSE OUTPUT&=&Z&
  END IF;
  END PROCESS;
  END BHV;
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于www.baike.com。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:6次
参与编辑人数:6位
最近更新时间: 19:43:37
贡献光荣榜
扫码下载APP请问各位大神,如何理解c语言的缓冲区。以及到底是如何实现的呢,最好有实现代码,_百度知道
请问各位大神,如何理解c语言的缓冲区。以及到底是如何实现的呢,最好有实现代码,
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:380
获赞数:851
将数据以链表形式顺序存放,新数据总是放在表尾,待处理的数据总是在头结点下的第一个结点,处理完毕则释放空间。缓冲器为暂时置放输出或输入资料的内存。缓冲器内资料自储存设备(如硬盘)来,放置在缓冲器中,须待机送至CPU或其他运算设备。缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合. 后来这个意思被扩展了,成为&临时存贮区&的意思。#define&BufferSize&1024&//&合适的大小你知道的typedef&struct&node&{char&*struct&node&*}*linkLLinkList&*InitList()&{LinkList&*head&=&(char&*)malloc(size(node));head-&next&=&NULL:return&}void&AddData(LinkList&*head,&char&*data)&{&//&将新数据添加到表尾LinkList&*p&=&LinkList&*anode&=&(char&*)malloc(size(node));anode-&buffer&=&(char&*)malloc(size(BufferSize));strncpy(anode-&buffer,data,BufferSize);anode-&next&=&NULL:while(p-&next)&p&=&p-&p-&next&=&}void&DealData(LinkList&*head)&{LinkList&*p&=&head-&if(p)&{head-&next&=&p-&//&p-&buffer指向的数据待处理free(p-&buffer);&//&处理完毕,释放空间free(p);}}
似懂非懂,我学的太浅了,上面代码望细细说明,谢谢大神
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。出自 MBA智库百科()
鼓-缓冲-绳法(Drum-Buffer-Rope,DBR)
  鼓-缓冲-绳法(Drum-Buffer-Rope,DBR)是一种计划,排程和执行方法,在TOC被用于制造工厂排程时出现。它适当地抓住了TOC排程的技巧在工厂车间易被理解与执行。这种简单化使如此的强大。
  DBR是应用于制造工厂排程时的一个计划、排程与实施的方法论,它恰当地抓住排程的技巧,使之在工厂层面易于理解和执行。正是这种简单化使DBR非常有效。
  1.“鼓”(Drum)
  从以上步骤可以看出,“鼓”是一个企业应用TOC的开端,即识别一个企业的“约束”所在。“约束”控制着企业同步生产的节奏棗“鼓点”。要维持企业内部生产的同步、企业生产和的同步,存在着一系列的问题。其中一个主要问题就是企业的生产如何能满足市场或顾客的需求而又不产生过多的库存。因而,安排时,除了要对市场行情进行正确的预测外,还必须按给顾客赋予一定的优先权数,在“约束”上根据这些优先权数的大小安排生产,并据此对上下游的工序排序,则得到交付时间,使交付时间与交货期限得以相符。
  为了使交付时间与交货期限相符,靠的是权衡在约束资源上的批量规模。因为,在约束资源上只有加工时间和调整准备时间,增大约束资源的加工批量,可以减少调整准备时间,使约束资源的有效能力增加,但会减少系统的柔性,增加库存和。反之,其效果与增大加工批量相反。两者都会影响到一些订货的交货时间。
  从计划和控制的角度来看,“鼓”反映了系统对约束资源的利用。对约束资源应编制详细的,以保证对约束资源的充分合理的利用。
  2.“缓冲器”,又称“缓冲”(Buffer)
  一般来说,“缓冲器”分为“时间缓冲”和“库存缓冲”:“库存缓冲”就是保险在制品,其位置、数量的确定原则同“时间缓冲”。“时间缓冲”则是将所需的物料比计划提前一段时间提交,以防随机波动,以约束资源上的加工时间长度作为计量单位。例如,一个三天的“时间缓冲”表示着一个等待加工的队列,它相当于在约束资源上三天的生产任务。其长度可凭观察与实验确定。再通过实践,进行必要的调整。在设置“时间缓冲”时,一般要考虑以下几个问题:
  (1)要保证约束资源上产出率相对较快的工件在加工过程中不致因为在制品少而停工。
  (2)应考虑加工过程中出现的波动。如约束资源上的实际产出率比原来估计的要快,或者约束资源前的加工工序的产出率比原来估计的要馒,或者出现。在有的情况下,还要考虑前面的机器是否出现故障。因为,如果要对机器故障进行维修,则维持后续工序所需的是难以估计的。所以,在设置“时间缓冲”时一般要设置一定的。
  (3)根据TOC的原理,约束资源上的加工批量是最大的,而约束资源的上游工序则是小批量多批次的。约束资源前的加工工序的批次又和各道工序的调整准备时间有关。如果上游工序的调整准备时间小,或约束资源上的加工时间和前一台机器的加工时间相差很大,则批次可以较多,批量可以较小。反之,批次则可能较少,甚至和约束资源上的批次相同,加工批量也和约束资源上的批量相同。
  (4)要考虑在制品库存费用、成品库存费用、加工费用和各种人工费用。要在保证约束资源上加工持续的情况下,使得整个加工过程的总费用最小。
  3.“绳子”(Rope)
  如果说“鼓”的目标是使有效产出最大,那么,“绳子”的作用则是使库存最小。我们知道,“约束”决定着生产线的产出节奏,而在其上游的工序实行,等于用一根看不见的“绳子”把“约束”与这些工序串联起来,有效地使物料依照产品出产计划快速地通过非约束作业,以保证约束资源的需要。所以,“绳子”起的是传递作用,以驱动系统的所有部分按”鼓”的节奏进行生产。在DBR的实施中,“绳子”是由一个涉及投料到各车间的详细的作业计划来实现的。
  “绳子”控制着企业物料的进入(包括“约束”的上游工序与“非约束”的装配),其实质和“看板”思想相同,即由后道工序根据需要向前道工序领取必要的零件进行加工,而前道工序只能对已取用的部分进行补充,实行的是一种受控生产方式。在TOC中,就是受控于约束资源的产出节奏,也就是“鼓点”。没有约束资源发出的生产指令,就不能进行生产,这个生产指令是通过类似“看板”的物质在工序间传递的。
  通过“绳子”系统的控制,使得约束资源前的非约束资源均衡生产,加工批量和运输批量减少,可以减少提前期以及在制品库存,而同时又不使约束资源停工待料。所以,“绳子”是约束资源对其上游机器发出生产指令的媒介,没有它,生产就会造成混乱,要么造成库存过大,要么会使约束资源出现“饥饿”现象。 
本条目对我有帮助20
&&如果您认为本条目还有待完善,需要补充新内容或修改错误内容,请。
本条目由以下用户参与贡献
(window.slotbydup=window.slotbydup || []).push({
id: '224685',
container: s,
size: '728,90',
display: 'inlay-fix'
评论(共0条)提示:评论内容为网友针对条目"鼓-缓冲-绳法"展开的讨论,与本站观点立场无关。
发表评论请文明上网,理性发言并遵守有关规定。
把经管知识装进口袋?
以上内容根据网友推荐自动排序生成

我要回帖

更多关于 透过现象看本质的诗句 的文章

 

随机推荐