catalogue . SAPI接口 . PHP CLI模式解释执行脚本流程 . PHP Zend Complile/Execute函数接口化(Hook Call架构基础) 1. SAPI接口 PHP的SAPI层实现上层接口的封装,使得PHP可以用在很多种模式场景下(例如apache.ningx.cgi.fastcgi.cli),以以cli SAPI为例子学习PHP解释器引擎是如何处理PHP用户态源代码文件的Cli(Command Line Interface)即PHP的命令行模式,现在此SAP…
if-else     控制程序流程最基本的形式 格式: if(boolean - expresion){ statement } 或 if(boolean - expresion){ statement }else{ statement} 例: public static int testIf(int testVal,int target){ int result = 0; if(testVal > target){ result+=1; }else if(testVal<target){…
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/t__Jqzg1rbTlsCHXKMwh6A作者:赖勇高 本文主要讲解的是V8的技术,是V8的入门篇,主要目的是了解V8的内部机制,希望对前端,快应用,浏览器,以及nodejs同学有些帮助.这里不涉及到如何编写优秀的前端,只是对JS内部引擎技术的讲解. 一.V8来源 V8的名字来源于汽车的“V型8缸发动机”(V8发动机).V8发动机主要是美国发展起来,因为马力十足而广为人知.V8引擎的命名是G…
目录 前言 准备工作 构造 InferenceSession 对象 & 初始化 让模型 Run 总结 前言 在上一篇博客中:[推理引擎]ONNXRuntime 的架构设计,主要从文档上对ONNXRuntime的执行流程进行了梳理,但是想要深入理解,还需从源码角度进行分析. 本文以目标检测模型NanoDet作为分析的基础,部分代码主要参考:超轻量级NanoDet MNN/TNN/NCNN/ONNXRuntime C++工程记录 - DefTruth的文章 - 知乎,在此表示感谢! 准备工作 Ort…
ThinkPHP作为国内具有代表性的PHP框架,经过多年的发展,受到越来越多公司与开发者的青睐.我也在忙里偷闲中抽出部分时间,来学习这个优秀的框架.在开始学习这个框架时,最好通过实例来学习,更容易结合实际的生产情况,促进学习的效果:这里我就选择由ThinkPHP团队开发的基于ThinkPHP3.2的内容管理框架OneThink来学习,从了解它的执行流程→熟悉流程中各个细节→了解模版标签→自己实际去使用标签→再了解它的实际执行过程……通过这样一个流程来熟悉如何基于ThinkPHP开发出一套CMS系…
接续<debian内核代码执行流程(二)>未完成部分 下面这行输出信息是启动udevd进程产生的输出信息: [ ]: starting version 175是udevd的版本号. 根据<essential linux device drivers>中关于udev的说明(英文书140页),设备可以分成热插拔和冷插拔. 热插拔是在已经运行的系统中连接的设备,冷插拔是系统启动前插入的设备. 当系统检测到热插拔设备时,系统使用netlink socket向用户空间发送uevents. 在…
继续上一篇文章<debian内核代码执行流程(一)>未完成部分. acpi_bus_init调用acpi_initialize_objects,经过一系列复杂调用后输出下面信息: [ INTL ) [ 0.147566] ACPI: Dynamic OEM Table Load: [ INTL ) [ INTL ) [ 0.148176] ACPI: Dynamic OEM Table Load: [ INTL ) acpi_bus_init接着调用acpi_sysfs_init,创建/sys…
本文根据debian开机信息来查看内核源代码. 系统使用<debian下配置dynamic printk以及重新编译内核>中内核源码来查看执行流程. 使用dmesg命令,得到下面的开机信息: [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ (host@debian) ( (Debian -) ) # SMP Fri Jun :: CST [ 0.000000]…
目录 一.自定义插件流程 二.测试插件 三.源码分析 1.inteceptor在Configuration中的注册 2.基于责任链的设计模式 3.基于动态代理的plugin 4.拦截方法的intercept(invocation) 四.插件开发插件pagehelper 1.引入相关依赖 2.全局配置 3.测试分页 五.插件总结 前文传送门: mybatis源码学习:从SqlSessionFactory到代理对象的生成 mybatis源码学习:一级缓存和二级缓存分析 mybatis源码学习:基于动…
1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是父RDD中的一个分区最多只会被子RDD中的一个分区使用,意味着父RDD的一个分区内的数据是不能被分割的,子RDD的任务可以跟父RDD在同一个Executor一起执行,不需要经过Shuffle阶段去重组数据 窄依赖关系划分为两种:一对一依赖(OneToOneDependency)和范围依赖(Range…