DPDK中的memcpy性能优化及思考

内存拷贝(memcpy)这个操作看似简单,但长期以来存在很多关于其优化的讨论,各种编程语言库也都有对应实现,而对于memcpy性能评估测试的讨论就更多了。        那么如下的memcpy实现到底有什么问题? [crayon-5c3f8faa7e728113563780/]         很简单,首先,这看起来太简单,不够高端,气势上就先输了;同时,代码没有使用Vector指令,没有指令级并行,没有做地址对齐处理,最终性能完全依赖于编译器的优化——然而这些并没有什么问题,在某些应用场景中这... 继续阅读

基于DPDK的虚拟网络包代理(broker)

1、虚拟网络包代理的商业需求     网络需要较好地分析与可视化最好的客户体验和投资回报率,这一点NPB(Network Packet Broker)可以做到,涵盖服务质量性能、工具和应用性能、安全。 但是,对于网卡出现的越来越偏向软件的需求(vEPC:virtual Evolved Packet Core,CORD等),物理NPB不足以或无法高效地完成,涉及到对网络流编程/重新编程、分析业务流程这两个方面。 2、虚拟网络包代理支持以下功能     基于以上的商业需求,我们需要开发一个可以支持以... 继续阅读

从PCRE到Hyperscan

        Hyperscan作为高性能的正则表达式匹配库,使用者通常乐意将其与传统的正则表达式匹配库进行比较。“为什么要用Hyperscan?”“使用Hyperscan对我有怎样的好处?”本文以一款广泛使用的传统的正则表达式匹配库PCRE为例,说明Hyperscan与PCRE的差异与优势。 PCRE简介         PCRE是Perl Compatible Regular Expressions的简称,是一款十分流行的用C语言编写的正则表达式匹配库,其灵感来源于Perl语言中的正则表达... 继续阅读