当前位置: 首页 > news >正文

什么样式表一般用于大型网站什么是seo搜索

什么样式表一般用于大型网站,什么是seo搜索,公司网站做论坛,外贸网站 建设当我们在VPP/plugins目录下注册了自己的node后#xff0c; 肯定有一个node.func(), 那这个函数是如何执行到的呢#xff1a; 1. 首先我们要看一下这个插件注册的时候做了什么#xff0c; 假设node 如下#xff1a; 编译成功后#xff0c; 我们可以从函数vlib_plugin_earl…当我们在VPP/plugins目录下注册了自己的node后 肯定有一个node.func(), 那这个函数是如何执行到的呢 1. 首先我们要看一下这个插件注册的时候做了什么 假设node 如下 编译成功后 我们可以从函数vlib_plugin_early_init() 中分析 初始化时怎么把这个node加到全局链表中的。 TODO: 大概就是 在so 目录下去遍历所有so文件根据注册的名字用头插法把相关node 加入链表中 并为其分配相关的维护逻辑。 2. vpp初始化的前两步把插件加载完了维护起来了 那下边我们看下VPP是怎么在后台一直去轮询的呢  由于亿图脑图目前不能保存节点限制 先把已经总结放这里新标签中打开图片可以放大。 下图主要以vpp的main为入口学习vpp如果调用我注册的node的处理函数的。 前边马上就要找到调用我们注册的node了 下边我们看一下dispatch_node(函数。 在调用的地方我们要注意框起来的这两个参数 因为我们注册的NODE是VLIB_NODE_TYPE_INTERNAL类型的 这里就是了 我们看下dispatch_node(源码 static_always_inline u64 dispatch_node (vlib_main_t * vm,vlib_node_runtime_t * node,vlib_node_type_t type, // internal 类型的vlib_node_state_t dispatch_state, // polling 状态 的。vlib_frame_t * frame, u64 last_time_stamp) {uword n, v;u64 t;vlib_node_main_t *nm vm-node_main;vlib_next_frame_t *nf;if (CLIB_DEBUG 0){vlib_node_t *n vlib_get_node (vm, node-node_index);ASSERT (n-type type);}/* Only non-internal nodes may be disabled. */if (type ! VLIB_NODE_TYPE_INTERNAL node-state ! dispatch_state){ASSERT (type ! VLIB_NODE_TYPE_INTERNAL);return last_time_stamp;}if ((type VLIB_NODE_TYPE_PRE_INPUT || type VLIB_NODE_TYPE_INPUT) // 这里些时进不来 dispatch_state ! VLIB_NODE_STATE_INTERRUPT){u32 c node-input_main_loops_per_call;/* Only call node when count reaches zero. */if (c){node-input_main_loops_per_call c - 1;return last_time_stamp;}}/* Speculatively prefetch next frames. */if (node-n_next_nodes 0) // 这里是预取 先不用管{nf vec_elt_at_index (nm-next_frames, node-next_frame_index);CLIB_PREFETCH (nf, 4 * sizeof (nf[0]), WRITE);}vm-cpu_time_last_node_dispatch last_time_stamp;if (1 /* || vm-thread_index node-thread_index */ ) // 这里一定能进来。{vlib_main_t *stat_vm;stat_vm /* vlib_mains ? vlib_mains[0] : */ vm;vlib_elog_main_loop_event (vm, node-node_index, last_time_stamp,frame ? frame-n_vectors : 0,/* is_after */ 0);/** Turn this on if you run into* bad monkey contexts, and you want to know exactly* which nodes theyve visited... See ixge.c...*/if (VLIB_BUFFER_TRACE_TRAJECTORY frame) // 这里前宏没有定义 进不来{int i;u32 *from;from vlib_frame_vector_args (frame);for (i 0; i frame-n_vectors; i){vlib_buffer_t *b vlib_get_buffer (vm, from[i]);add_trajectory_trace (b, node-node_index);}n node-function (vm, node, frame); }else // 最后走到了这里。n node-function (vm, node, frame); // 这里调用的我们加的internal node的执行函数。/* 因为上层调用的时候 是处理所有的internal类型的node, 这里的node 就包含了我们注册的 Node. node-function 就是调用的我们注册的函数 yb_sample_node_fn() , 上层调用是一个 while( 循环 所以这些node会一直在后台循环处理 这样只要有包到我们这个node就会添加进调度链表并进行处理。*/ 从这个流程上 就大概知道我们注册的node是如何被调用起来的了。 以后有更多的细节要学习 可以根据这个流程去找具体的实现逻辑。
http://www.zqtcl.cn/news/793158/

相关文章:

  • 西安市城乡建设管理局网站6一级域名生成二级域名
  • 网站建设沙漠风服装公司网站源码
  • 体检营销型网站php网站建设培训班
  • 做洁具最好的网站数据分析
  • 郑州网站建设丶汉狮网络网站建设中图片是什么意思
  • 深圳网站建设公司设计公司做影视网站用主机还是用服务器
  • 网站建设价格如何做问卷调查网站
  • 网络营销推广合同天津网站seo策划
  • 明年做那个网站致富wordpress loper
  • 网站开发原理柳州网站推广
  • 杭州高端网站开发重庆网站建设去迅法网
  • 营销型网站建设调查表用flash做游戏下载网站
  • 企业网站申请流程北京网站建设北京
  • 响应式网站导航栏模板python开发wordpress
  • 大学生创新创业大赛一个网站做两个优化可以做吗
  • 网站设计建设铁总建设函网站
  • 做期货都看哪个网站什么是网络营销的综合工具
  • 专做袜子的网站北京学设计去哪个网站好
  • 一搜网站制作网站支付怎么做
  • 广州 科技网站建设公司国外酷炫flash网站
  • 焦作网站建设焦作wordpress怎么进行301 htaccess
  • 那个网站能找到人做品牌文化的网站
  • 家里做网站买什么服务器好网站建设报价单 文库
  • 网站百度建设银行广西分行招聘网站
  • 打开网站显示404北京公司请做网站工资
  • 网站开发验收流程图app开发制作的图片
  • 网站流量的作用app定制开发和模板开发的区别
  • 如何做分公司网站网站建设与设计开题报告
  • 易语言怎么做网站网络推广客户渠道
  • 唐山哪里有做网站的网站服务器在