
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
理解应用程序的输入/输出(I/O)模型,意味着其在计划处理负载与残酷的实际使用场景之间的差异。若应用程序比较小,也没有服务于很高的负载,也许它影响甚微。随着应用程序的负载逐渐上涨,采用错误的I/O模型有可能会让你到处踩坑,会遇到更多的问题。
正如大部分存在多种解决途径的场景一样,重点不在于哪一种途径更好,而是在于理解如何进行权衡。让我们来参观下I/O的景观,看下可以从中窃取点什么。
在这篇文章,我们将会结合Apache分别比较Node,Java,Go,和PHP,讨论这些不同的语言如何对他们的I/O进行建模,各个模型的优点和缺点,并得出一些初步基准的结论。如果关心你下一个Web应用的I/O性能,那你就找对文章了。
佛山达内培训的小编给大家分享:I/O基础知识:
为了理解与I/O密切相关的因素,必须先来回顾在操作系统底层的概念。虽然不会直接处理这些概念的大部分,但通过应用程序的运行时环境你一直在间接地处理他们。而关键在于细节。
系统调用
首先,我们有系统调用,它可以描述成这样:
你的程序(在“用户区域”,正如他们所说的)必须让操作系统内核在它自身执行I/O操作。
“系统调用”(syscall)意味着程序要求内核做某事。不同的操作系统,实现系统调用的细节有所不同,但基本的概念是一样的。这将会有一些特定的指令,把控制权从你的程序转交到内核(类似函数调用但有一些专门用于处理这种场景的特殊sauce)。系统调用是阻塞的,意味着你的程序需要等待内核返回到你的代码。
内核在我们所说的物理设备(硬盘、网卡等)上执行底层的I/O操作,并回复给系统调用。在现实世界中,内核可能需要做很多事情才能完成你的请求,包括等待设备准备就绪,更新它的内部状态等,但作为一名应用程序开发人员,你可以不用关心这些。以下是内核的工作情况。
如果大家想了解到更多的it技术,或者想学一门专业的Java技术,欢迎来佛山达内培训机构进行更多的了解和咨询。
现提供在线免费体验课程,编辑短信:姓名+电话+想要学习课程→18087159764,我们将免费试听券发送给你,您可以就近试听,也可以进一步了解课程介绍。
欢迎致电18087159764或加QQ3477476196详细为您介绍,也可以给您发一下免费的教程和资料。记得备注学习课程哦!
网站: http://gz.java.tedu.cn