javascript - 关于slow path code 和 fast patch code的理解?
PHPz
PHPz 2017-04-11 10:13:03
0
1
441

作为jser,在性能优化的时候遇到:fast-path code和slow-path code是什么意思?两者之前是什么关系。
在网络上搜索了下,并没有得到很好的阐述。

现在得到的阐述为: 为了进行某些操作,调用一些C函数来处理。这些C函数被称为slow path 。
这个....阐述忒模糊了..

PHPz
PHPz

学习是最好的投资!

reply all (1)
大家讲道理

在网络设备里面区分不同的路径是一个很自然的选择,因为网络设备的首要任务是转发网络包,不同的网络包,在设备里面的处理路径不同。fast path就是那些可以依据已有状态转发的路径,在这些路径上,网关,二层地址等都已经准备好了,不需要缓存数据包,而是可以直接转发。slow path是那些需要额外信息的包,比如查找路由,解析MAC地址等。

first path是设备收到流上第一个包所走过的路径,比如tcp里面的syn包,有些实现把三次握手都放到first path里面处理,而有些只需处理syn包,其他包就进入fast path的处理路径。

在NP或者ASIC里面也需要区分slow path和fast path,fast path上的包都放在SRAM里面,而slow path的包放在DRAM里面。不过这也非绝对。决定处理路径的是对于速度的考虑。处理器的速度,内存的速度等。访问内存的速度由速度和带宽两个因素决定。因此,把SRAM放到fast path上,也是很自然的选择。

fast path: Frontend -> simple code generator -> assembler

slow path: Frontend -> IR optimizer (sometimes more than one level of IR) -> code-generator -> assembler

    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!