在上一篇Hyperscan的整体结构做了初步的介绍。我们知道Hyperscan的调用分为两个阶段:编译期和运行期。在使用前,用户需要提前为运行期选择一个合适的运行模式,并在编译期就将此参数传入Hyperscan。该运行模式的选择取决于用户的使用场景,最常用的两种分别为块模式与流模式。本篇我们将对这两种模式做具体的介绍。
1
块模式(Block Mode)
块模式是Hyperscan中基础的模式,调用函数为hs_scan()。用户每次调用时,将对一段完整的数据块进行匹配。匹配只限于该数据块内,而与上一次的hs_scan() 调用无关。在通常情况下块模式是所有模式中最高效的。
使用场景:
用户只有一段完整的数据需要扫描,而没有更多关联的上下文时,推荐使用块模式。如对本地的数据库文本进行扫描;
若用户的数据为多个独立的数据包,并希望在各个数据包内寻找匹配时,更适合使用块模式;此