作为我的Uni课程的一部分,我们已经展示并要求使用管道在进程之间进行通信(使用pipe()和fork())进行一些小练习.使它工作或使用概念没有问题,但是在这些要求之外,我想知道用这种类型的管道进行读写的效率如何?
如果我有要打包到4字节块中的某个值,是否最好一次打包并写入100个值(即400个字节)?
还是如果我每4个字节写100次,性能是否可比?
一次传送400个字节是否会阻止接收者执行任何操作,直到写入完成-假设接收者仅尝试读取前4个字节,那么在写入之后但在所有400个字节完成之前它将能够这样做?
解决方法:
管道的处理方式与文件类似(当然,它们不在磁盘上).它们以某些相同的方式进行缓冲,并且对它们的句柄进行类似的处理.不要尝试手动缓冲管道;它已经做到了.如果您真的很担心,可以尝试两种方法并收集一些运行时间.我建议您编写4个字节的块.除非您知道有问题,否则不要尝试进行优化.
标签:c-3,linux,pipe 来源: https://codeday.me/bug/20191023/1915568.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。