摘要:一: 乱序 乱序包含处理器的乱序执行和编译器的乱序优化; (1)处理器的乱序 乱序执行就是说把原来 有序执行的 指令列表,在保证执行结果一致的情况下 根据 指令依赖关系及指令执行周期 重新安排执行顺序。 例如以下指令(a = 1;b=a;c=2;d=c)在CPU中就很可能被重排序成为以下的执行顺序(
阅读全文
随笔分类 - 性能调优
性能调优
摘要:一: 乱序 乱序包含处理器的乱序执行和编译器的乱序优化; (1)处理器的乱序 乱序执行就是说把原来 有序执行的 指令列表,在保证执行结果一致的情况下 根据 指令依赖关系及指令执行周期 重新安排执行顺序。 例如以下指令(a = 1;b=a;c=2;d=c)在CPU中就很可能被重排序成为以下的执行顺序(
阅读全文
摘要:(一)一些概念: 分页:将物理内存分成固定大小的块,按照页来进行分配和释放;一般带下为4K(2^12)个字节; 大页:比如大小为2M(2^20)和2G(2^32)字节大小的页; 虚拟地址:软件编码通过虚拟地址来访问内存;由处理器将虚拟地址转换成物理地址;(虚拟地址对应虚拟内存,虚拟内存对应了numa
阅读全文
摘要:(一)DPDK出现之前的问题: 以Linux 为例,传统网络设备驱动包处理的动作可以概括如下: 因此,可能产生以下问题: 1:数据包产生通过中断上报处理器,再到处理,延时过长 2:数据报文先送到内核协议栈进行高层处理,再复制到用户空间的耗时 3:用户态线程由操作系统调度,除去本身任务切换的开销,由切
阅读全文
摘要:目前要测试一段驱动程序在ARM和X86不同款型CPU上的性能;需求是可以在任意一段代码前后进行打点N次,然后show出cycle的平均开销值(算平均值避免波动的影响); 关键点为:(1)cpu上获取cycle值的方法; (2)设计结构体能够存储不同cpu core的不同事件的多次cycle开销值;
阅读全文
|