nativescript-new-looper-vantoll.pptx
don (15) - 9) ? peterstaev (15) - 8) ? sitefinitysteve (21) - 7) ? markosko (27) - 6) ? jen.looper (28) Stack Overflow contributors ? - 10) ? G. McGhie (15) - 9) ? George Edwards (15) - 8)0 码力 | 36 页 | 10.78 MB | 1 年前3Node.js在YunOS中的最佳实践
js在YunOS中的最佳实践 叶敬福 1 摘要 • YunOS: 万物互联 • YunOS选择Node.js • Node.js在YunOS中的最佳实践 – 对IO优先的Looper机制的改造和优化 – SAB + Worker机制的实践 – 性能优化的实践 2 3 万物互联 4 Cloud App应用场景化 5 CloudApp JS 对IO优先的Looper机制的改造和优化 难点: 1. Node.js的消息循环机制完全由IO事件来驱动 2. 终端设备的场景在UI渲染及非IO任务的及时响应的需求 Node.js的消息循环: 11 Pending Queue AcZve Queue task task Node.js Queue uv_async_t YunOS对Looper改造的实践0 码力 | 20 页 | 1.37 MB | 1 年前3Cilium v1.5 Documentation
.pinning = PIN_GLOBAL_NS, .max_elem = 1, }; __section_tail(JMP_MAP_ID, 0) int looper(struct __sk_buff *skb) { printk("skb cb: %u\n", skb->cb[0]++); tail_call(skb, &jmp_map --no-show-raw-insn prog_array.o | less prog_array.o: file format ELF64-BPF Disassembly of section 1/0: looper: 0: r6 = r1 1: r2 = *(u32 *)(r6 + 48) 2: r1 = r2 12 6: r0 = 0 7: exi In this case, the section 1/0 indicates that the looper() func�on resides in the map id 1 at posi�on 0 . The pinned map can be retrieved by a user space0 码力 | 740 页 | 12.52 MB | 1 年前3Cilium v1.6 Documentation
.pinning = PIN_GLOBAL_NS, .max_elem = 1, }; __section_tail(JMP_MAP_ID, 0) int looper(struct __sk_buff *skb) { printk("skb cb: %u\n", skb->cb[0]++); tail_call(skb, &jmp_map, 0); --no-show-raw-insn prog_array.o | less prog_array.o: file format ELF64-BPF Disassembly of section 1/0: looper: 0: r6 = r1 1: r2 = *(u32 *)(r6 + 48) 2: r1 = r2 3: call 12 6: r0 = 0 7: exi In this case, the section 1/0 indicates that the looper() function resides in the map id 1 at position 0. The pinned map can be retrieved by a user space0 码力 | 734 页 | 11.45 MB | 1 年前3Cilium v1.7 Documentation
.pinning = PIN_GLOBAL_NS, .max_elem = 1, }; __section_tail(JMP_MAP_ID, 0) int looper(struct __sk_buff *skb) { printk("skb cb: %u\n", skb->cb[0]++); tail_call(skb, &jmp_map, 0); --no-show-raw-insn prog_array.o | less prog_array.o: file format ELF64-BPF Disassembly of section 1/0: looper: 0: r6 = r1 1: r2 = *(u32 *)(r6 + 48) 2: r1 = r2 3: call 12 6: r0 = 0 7: exi In this case, the section 1/0 indicates that the looper() function resides in the map id 1 at position 0. The pinned map can be retrieved by a user space0 码力 | 885 页 | 12.41 MB | 1 年前3Cilium v1.8 Documentation
.pinning = PIN_GLOBAL_NS, .max_elem = 1, }; __section_tail(JMP_MAP_ID, 0) int looper(struct __sk_buff *skb) { printk("skb cb: %u\n", skb->cb[0]++); tail_call(skb, &jmp_map, 0); --no-show-raw-insn prog_array.o | less prog_array.o: file format ELF64-BPF Disassembly of section 1/0: looper: 0: r6 = r1 1: r2 = *(u32 *)(r6 + 48) 2: r1 = r2 3: call 12 6: r0 = 0 7: exi In this case, the section 1/0 indicates that the looper() function resides in the map id 1 at position 0. The pinned map can be retrieved by a user space0 码力 | 1124 页 | 21.33 MB | 1 年前3Cilium v1.10 Documentation
pinning = PIN_GLOBAL_NS, .max_elem = 1, }; __section_tail(BPF_JMP_MAP_ID, 0) int looper(struct __sk_buff *skb) { printk("skb cb: %u\n", skb->cb[0]++); tail_call(skb, &jmp_map, 0); --no-show-raw-insn prog_array.o | less prog_array.o: file format ELF64-BPF Disassembly of section 1/0: looper: 0: r6 = r1 1: r2 = *(u32 *)(r6 + 48) 2: r1 = r2 3: call 12 6: r0 = 0 7: exi In this case, the section 1/0 indicates that the looper() function resides in the map id 1 at position 0. The pinned map can be retrieved by a user space0 码力 | 1307 页 | 19.26 MB | 1 年前3Cilium v1.9 Documentation
pinning = PIN_GLOBAL_NS, .max_elem = 1, }; __section_tail(BPF_JMP_MAP_ID, 0) int looper(struct __sk_buff *skb) { printk("skb cb: %u\n", skb->cb[0]++); tail_call(skb, &jmp_map, 0); --no-show-raw-insn prog_array.o | less prog_array.o: file format ELF64-BPF Disassembly of section 1/0: looper: 0: r6 = r1 1: r2 = *(u32 *)(r6 + 48) 2: r1 = r2 3: call 12 6: r0 = 0 7: exi In this case, the section 1/0 indicates that the looper() function resides in the map id 1 at position 0. The pinned map can be retrieved by a user space0 码力 | 1263 页 | 18.62 MB | 1 年前3Cilium v1.11 Documentation
pinning = PIN_GLOBAL_NS, .max_elem = 1, }; __section_tail(BPF_JMP_MAP_ID, 0) int looper(struct __sk_buff *skb) { printk("skb cb: %u\n", skb->cb[0]++); tail_call(skb, &jmp_map, 0); --no-show-raw-insn prog_array.o | less prog_array.o: file format ELF64-BPF Disassembly of section 1/0: looper: 0: r6 = r1 1: r2 = *(u32 *)(r6 + 48) 2: r1 = r2 3: call 12 6: r0 = 0 7: exi In this case, the section 1/0 indicates that the looper() function resides in the map id 1 at position 0. The pinned map can be retrieved by a user space0 码力 | 1373 页 | 19.37 MB | 1 年前3
共 9 条
- 1