ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:389.81KB ,
资源ID:470111      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-470111.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计外文资料翻译--Node.js的范式与基准Word文件下载.docx)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

毕业设计外文资料翻译--Node.js的范式与基准Word文件下载.docx

1、Robert Ryan McCune 附 件:1.外文资料翻译译文; 2.外文原文 指导教师评语:该同学专业术语、词汇翻译的准确度较高,体现了一定的专业英语应用水平。翻译工作较为认真细致,翻译材料能与原文基本保持一致,能基本正确表达出原文意思,细节处理得当,保持准确。翻译字、词数满足要求。翻译材料语句较为通顺,符合中文的表达习惯。翻译工作能够按照规定,达到考核、提高学生英语应用水平的目的。签名:2015年10月14日1外文资料翻译译文Node.js的范式与基准摘要现在的web应用环境都应该具备高性能和可扩展性的环境,现有的一些web应用已经实现了线程驱动,实现了事件或两者都有。但是日益增长的网

2、络运输量需要新的解决方法来改善并发服务。Node.js是一个新的web框架,它可以通过JavaScript运行在服务器端,是一种事件驱动的I/O型的框架。本文的研究将会比较多种框架的多个内核的服务请求响应次数。结果将会证明JavaScript作为一种服务器端语言也能表现很好,而且对非阻塞异步模型具有更高的效率。1.引言因特网的持续发展给web应用的设计者带来了大量的挑战。大量的信息交互需要服务器更好的处理并发的会话。而且Slashdot效应证明了信息量能快速以几个量级的单位改变。Web应用必须能够高效处理并发请求。Lauer和Needham断言,一个巨大的二元计算可以通过线程或消息传递系统建模

3、。Web应用通过给每个请求建立一个独立的线程来实现并发处理。相比之下,消息传递或基于事件的系统,利用一个单一的线程来处理事件,如队列中的输入请求。每一种方法都有其固有的优点和缺点,这取决于具体的实现上。鉴于广泛的支持和直观的设计,线程是管理web应用并发的较好的方式。线程在许多平台都是可实现的,这自然得益于其独立的执行流。然而,由于它本来并不是为了用户级的实现,线性编码显得十分困难。许多的挑战随着线程而产生,包括同步机制,包括解决方案在成本上的复杂度也激烈增加。而许多常见的web服务器例如Apache,它的实现线程,最近已开始趋向于研究以事件为基础的模型。一个以事件驱动的模型也许能够利用一个简

4、单的事件池提供更好的服务,以避免包含多线程的并发范例。可以注意到,事件通过执行回调函数来避免阻塞,因此只要一个资源正在被使用,就不会停止对它的执行。事件驱动的I/O凭借着低成本同步,较低的管理费用,更好的策略和逻辑以及大大改善的流控制复杂度而获得支持。Node.js是最近的一种通过全栈方式实现事件模型的框架。由Ryan Dahl于2009年完成开发,Node.js是用C和C+编写的单线程服务端的JavaScript开发环境。Node的出现使JavaScript在作为一种运行在服务端的表达型、功能型的语言而更加容易,也让它在开发者中越来越火。Node借助于Google的JavaScriptV8引

5、擎,一种能快速、高效运行JavaScript的引擎,该引擎使得Node表现更加出色。在接下来的实验中,Node将会与多线程服务器Apache,与EventMachine以及事件型Ruby语言的web服务器作比较,以此评估当前网络环境下实际web框架在面对挑战时的表现。2.相关工作自从2009发布,Node仍然只是beta测试发布版,目前也缺少同行评测的文献。开发社区虽然已经发布了几个关于能否在网络上支持事件的实验,但是Node仍然缺乏定义性的评测。与尖端框架相比,线程与事件之间的争论由来已久。有关基于事件结构的需求在近些年已经被确定,与此同时,近年来的服务器应用中,以线程为基础的并发研究保持着

6、持续的活跃状态。不管是线程还是事件驱动,他们始终都在向前发展。Apache引入有数量限制的线程池,确定线程数的上限是为了限制资源的分配。另外,事件驱动的并发已经被细化,其中包括事件队列对代码的简化,和事件队列对代码的模块化。最近,来自UC伯克利的研究人员发现了SEDA的混合算法,利用线程和事件创建一个混合的分期组件来模块化网络体系结构。这一发现在处理庞大数据方面表现很好,但也为系统带来了很多复杂的问题。同样值得注意的是,SEDA在当前试验中并不适用。3.方法论实验的目的在于检测Node.js,EventMachine和Apache服务器在并发等级和总的请求等级上的表现。EventMachine

7、是一个为Ruby编程语言提供的事件驱动I/O的库。Ruby是开发于90年代中期的编程语言。Ruby on Rails是流行用于一些应用的web框架,这些应用中包括Twitter,但已被证实缺乏可扩展性。实验将会测试每个框架处理不同的服务请求时的表现。测试环境包括一台OS X10.6.8的iMac电脑,带有8G的内存和3.06GHz的Intel Core2双核处理器,虚拟机环境在VMWare Fusion4.0.2上搭建,运行Ubuntu11.10版本的系统,并分配有2G的内存。一个双核处理器可用的内核数量是可变的。除了虚拟化更多硬件,软件允许获取机器的快照,允许机器本身的能量节约。Ubuntu

8、的智能软件包管理工具被用于安装测试环境,来保证其简单性和一致性。Apache装在最新的Ubuntu系统中,其他所有的软件通过智能软件安装包安装,除了Node。Node使用一个流行的脚本来安装和配置。Node的安装方法也许会帮助它的表现超过一些预编译的程序。但这不会再这次研究中被考虑。主要的安装包括Node0.4.12,EventMachine0.12.10,Ruby1.8.7和Apache2.2.20。下面是将运行在Node.js的服务器端代码的例子。var http = require(http);http.createServer(function(req, res)res.writeHe

9、ad(200, Content-Type: text/plain);res.end(Hellow Worldn);) .listen(8080, 127.0.0.1);console.log(Server localhost 8080);实验将每个框架的web服务器都运行在本地,服务器上运行一个简单的程序。ApacheBench命令行工具被用来记录每个web服务器信息。在这些实验中,ApacheBench一组配置信息,以及所有的服务器请求数量和并发请求数量被设置为变量。底下是一个命令样式,该例子记录了一个运行在本地80端口,总量为10000请求和1000并发量的请求代码。ab -n 10000

10、 -c 1000 http:/localhost/通过以上执行,每一次并发请求变成一个打开的文件,所以以上运行结果会有10个文件同时被打开。为安全考虑,Ubuntu默认只允许同时打开1024个文件,为了测试更多数量的并发请求,这个安全限制必须提高。但需要逐步更改,为提高限制数量,需要找到/etc/security/该目录下的limits.conf文件,并添加以下代码。user hard nofile 500000这句命令为用户实行一个强制性的、不可用蛮力改变的限制。额外的配置可以到/etc/此目录下的sysctl.conf中设置,通过以下编码。fs.file-max = 500000在重新启动

11、机器登录至系统后,对限制的设定能成功的用来改变打开文件数量的最大值。ulimit -n 120000在这一系列实验中,每个框架都在不同幅度的总请求上被测试,幅度大概在1000到1000000之间。相比之下,并发请求数在模拟web环境中则显得更为重要,所以,测试的并发请求数量下降到更加精细的范围,大概为100,500,1000,5000和10000的并发请求数量。该试验机包含一个双核处理器,而每次测试运行都使用1个或者2个核,具体决定于如何适应虚拟机的配置。每个实验的单次运行都是为了提供一个准确的行为写照,即使在未来额外的运行状况会发生,实验还会提高准确度。一个成功的框架会响应所有的请求,会在当

12、前的网络环境下强调并发请求,会为次要目标争取一个更快的请求时间,并且有更微小的最大值、更严格的标准偏差。4.结果分析结果如图1到6所示,每个框架请求次数的标准偏差、中位数和最大值都会随着改变并发请求,总请求数和核数而改变。图7-9显示在较少请求的情况下每个框架的请求次数分布,结果所有测试的框架都完成了相似的请求次数,所以他们的曲线也是十分相似。这些分布表明大多数时候运行时间都在一个有边界的小范围内,只有大概5%的运行时间内表现得十分的频繁。考虑到一个自定义的web应用也许能更好的处理大量的请求次数,每次试验的平均运行时间也许是发挥服务器性能的精准变量。在执行完所有实验后,Node显然比其他两个

13、框架有更好的表现,在较低水平下的并发情况下,平均的请求次数也相对的有竞争力,但最大的区别在于观察到的压力的增加。Node是唯一一个在处理高并发和所有并发两个方面都有很好表现的框架。图7图8图9A. Node得出这样结果的原因可能是独特的环境有利于Node的事件驱动。服务器应用的简单性和传输小数据的特性,也有利于类似于Node的无状态的实现。B. EventMachine和事件驱动模型然而,基于Node的实验结果好于EventMachine的原因得益于高性能JavaScript V8引擎的支持,以及Node的自底向上的事件驱动。Node和所有的JavaScript库都是由事件驱动的,而Event

14、Machine的异步I/O的实现仍然是基于线程库的。EventMachine和Node都是基于事件的并发。Node具备更深入的实现和更快速的编程语言。尽管如此,在高负荷状态下,建议所有基于事件的框架都使用事件驱动I/O来更好的适应现在的网络发展。C. Apache在网络传输量较低的情况下,Apache使用这两种框架的表现并不理想。线程能更好的处理数据密集型的web应用,对更为复杂的应用的标杆管理会发现Apache能提供更好的服务。随着处理器的额外增加,Apache也有了些许的改善。重新配置默认的线程限制可以提高性能,鉴于增加线程比增加相等数目事件消耗更多的内存。5.结论本文实验目的是对比另一种

15、事件驱动框架EventMachine评估Node对事件驱动I/O模型的实现情况。同时还会将他与运行在Apache服务器上的传统的线程驱动模型作比较。在一种强调高并发和低数据吞吐量的的模拟web环境下,Node比EventMachine、Apache有着更好的表现。通过变化核数可以发现,即使到后来请求次数毫无悬念的增加了,每次实验的结论还是一致的。在低水平的并发请求和总请求情况下,进程是相对可以比较的。只有Node可以在更高的幅度负载。EventMachine表现也很好,尽管存在一些不一致性,相比之下,Apache表现较差。随着日益改善的线程配置,在以后的测试中,Apache或许能表现的更好。6

16、.未来展望更多更有效的任务可以用来评估Node.js。如本文中,基准实验可以重复更多次的运行来获取更准确的结果和推测。另外,设置不同的钩子并将他们加入到虚拟器中,主要目的是为了获取一个更加清楚的Node框架以及其他框架内部运行的图片。不同服务器过程中更多的数据可以阐明Node实现过程中哪一个元素对负载有缓冲作用。可以用更多的功能模块来阐述服务器应用程序,如数据库后端,甚至是一个移动设备,这些能更好地模拟当前环境。配置Apache可以更恰当地处理增加的并发请求。虽然在这些实验中,Node的表现优于竞争对手,但仍然有进一步的工作可以提供一个更清晰的结果,来表述Node的优势和劣势。2.外文原文No

17、de.js Paradigms and BenchmarksAbstractThe current environment of web applicationsdemands performance and scalability. Several previousapproaches have implemented threading, events, or both,but increasing traffic requires new solutions for improvedconcurrent service. Node.js is a new web framework th

18、atachieves both through server-side JavaScript and eventdrivenI/O. Tests will be performed against two comparable frameworks that compare service request times over anumber of cores. The results will demonstrate the performanceof JavaScript as a server-side language and theefficiency of the non-bloc

19、king asynchronous model.INTRODUCTIONThe Internet is continually evolving and presents anumber challenges to web application designers 1.High traffic demands services to better handle concurrentsessions 2. Moreover, the ”Slashdot Effect” demonstrateshow rapidly traffic can change by several ordersof

20、magnitude 3. Web applications must be able toefficiently serve concurrent requests.Lauer and Needham assert a broad duality for computing,arguing that processing may be modeled by eitherthreading or message-passing systems 4. Web applicationsserving concurrent requests implement threading byassignin

21、g each incoming request to a separate thread ofexecution. In contrast, message-passing, or event-basedsystems, utilize a single thread to process events, suchas incoming requests, from a queue. Each approach hasinherent advantages and drawbacks depending on theimplementation.Threading is an obvious

22、solution for managing webapplication concurrency, considering wide support andintuitive design. Threading is available on many platformsand naturally abstracts to independent streamsof execution. However, thread programming can beexceedingly difficult and was not originally intendedfor user-level im

23、plementation 5. A number of challengesarise with threading, including synchronization,where solutions add considerable complexity at drasticcost. While many common web servers like Apacheimplement threading 3, recent approaches have begunutilizing the event-based model.An event-based model may provi

24、de better performanceby utilizing a single event loop, avoiding theconcurrency paradigm that multithreading embraces. Notably,eventing achieves non-blocking through issuingcallbacks, so execution doesnt stop when a resourceis already in use. Evented-I/O has gained support becauseof inexpensive synch

25、ronization, lower overheadfor state management, better scheduling and locality, andimproved flexibility in flow control 6.Node.js is one recent framework to implement theevent model through the entire stack. Developed in 2009by Ryan Dahl, Node.js (or just Node) is a single-threadedserver-side JavaSc

26、ript environment implemented in Cand C+ 7. Nodes architecture makes it easy to useas an expressive, functional language for server-sideprogramming thats popular among developers 7. Nodeutilizes the JavaScript V8 engine, developed by Google9, a fast and powerful implementation of JavaScript8that help

27、s Node achieve top performance.In the following experiments, Node will be comparedto Apache, a multithreaded web server, and EventMachine,an evented Ruby web server, to evaluate practicalweb frameworks for the challenges posed by the currentweb.RELATED WORKHaving been released in 2009, Node is still

28、 beta releaseand currently lacks much peer-reviewed literature.The development community has posted several experimentson the web that support the evented approach10,11,12, but Node still lacks a definitive evaluation.In contrast with cutting-edge frameworks, the debatebetween threading and events h

29、as a long, establishedhistory. The need for event-based architectures has beenidentified in recent years 5,13,14 while thread-basedconcurrency remains prevalent in recent server applications15, 16.Both thread and event approaches have graduallyevolved. Apache utilizes bounded thread pools, wherethe

30、number of open threads is capped in order to limitresource allocation 3. Moreover, event-driven concurrencyhas been refined, including the event queue tosimplify processing and modularize code 3.More recently, researchers out of UC Berkeley discovereda hybrid approach in SEDA, that utilizes boththre

31、ads and events to create a hybrid staging componentto modularize web architectures 3. The approach performs well for high volume but adds considerablecomplexity to a system. While important, SEDA is notapplicable to current experiments.METHODOLOGYExperiments aim to test Node, EventMachine, andApache servers with increasing levels of concurrent andtotal requests.EventMachine is a library that provides for eventdriveI/O for

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2