龙游做网站,百度站长平台链接,观光园网站建设,网站开发公司营业范围之前的内核调试#xff0c;我觉得应该再加上下面的东西#xff0c;只有好好把下面的几个问题研究透了#xff0c;你可能才是一个真正的内核高手#xff0c;或者说#xff0c;你还不是一个高手#xff0c;就是一个内核的普通工程师#xff0c;这个是我和Z总聊天说的… 之前的内核调试我觉得应该再加上下面的东西只有好好把下面的几个问题研究透了你可能才是一个真正的内核高手或者说你还不是一个高手就是一个内核的普通工程师这个是我和Z总聊天说的我当时问他你对Linux内核熟悉吗Z总给我说了一句还可以吧。然后这些内容都是他给我总结的这些内容我觉得没有经过多年的项目捶打光靠看书看报百度搜狗出来是没有用的现在总结出来希望给正在一线的同学们一些帮助和建议。性能优化方式总结多核多队列并行处理将多个任务分发绑定在不同核上减少任务调度切换上下文的开销提升了cache命中率并行处理提升性能将不同任务间的资源分离不要共享比如每个核有单独的首发队列避免竞争负载均衡设备端处理后的数据散列到不同的CPU收发队列中均衡各core的负载DMA使用设备的DMA引擎降低CPU占用率提升性能负载均衡CPU给不同的DMA引擎收发队列散列差不多的数据保证各个DMA引擎负载均衡中断聚合保证时延的情况下将设备的多个中断汇聚成1个中断在一次中断函数中处理减少中断抢占带来的开销中断中处理读写BD时尽量按照cache lin对齐的方式比如一个BD是16字节cacheline是 64字节那就一次处理4个BD提升cache命中率设置中断亲和性是中断处理绑定在指定的core上可以通过cat /proc/interrupts命令查看中断在各个CPU上的分布降低TLB miss可以采用huge page采用huge page的虚拟地址和物理地址的转换映射条目就比较少而且TLB中有专门的条目保存huge page映射保证在huge page的命中率减少了进程页表的频繁读取提升了性能减少内存拷贝用户态驱动用mmap将物理地址映射到用户态虚拟地址减少内核态与用户态数据的拷贝提升cache命中率代码中少用静态变量和全局变量因为他们保存在数据段和BSS段不在栈内栈使用频繁一般都会cache命中频繁的访问静态变量和全局变量就需要多次对cache换入换出影响性能。cache line数据结构cache line对齐因为CPU每次按照cache line大小从内存取数据不对齐就需要取2次对齐就只要取1次多核共享的数据尽量将只读数据和可写数据分开因为某个core写数据后与其他core的cache中数据不一致了就需要将数据刷入内存其他core从内存读才能保证数据一致性分支预测代码中if else分支用likely/unlikely这样的宏这样编译时就把likely分支和前面的代码靠近提升指令cache的命中率同时减少跳转指令的开销。