首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android安卓进阶

    Android安卓进阶技术分享之AGP工作原理

    2.AGP源码的打开方式 看 AGP 代码的时候,我一直纠结要不要下载 AGP 的源码,后来听同事大佬建议,直接使用了项目依赖的代码进行分析。 主要的原因有两点: 1. AGP 的源码太大了,有30g,并且版本已经很旧了。 2. 使用项目依赖的 AGP 代码很简单。 --- 3.代码分析 顺便说一下,AGP 的版本是 4.1.1。 进入重点方法 basePluginApply 方法,这个方法的前期做了很多的检查工作,包括路径、版本和 AGP 版本等等,之后又做了很多监听工作,看一下源码: private void basePluginApply --- 3.总结 这篇文章的目的是希望大家对 AGP 有一个轮廓,AGP 主要做了什么?

    1.2K20编辑于 2022-04-14
  • 来自专栏Cellinlab's Blog

    浏览器工作原理 - V8 工作原理

    新生代通常只支持 1~8 M 的容量,而老生代区支持的容量就很大。V8 中使用 副垃圾回收器回收新生代的垃圾,用主垃圾回收器回收老生代的垃圾,以便实现高效回收。 垃圾回收器的工作流程 不论什么类型的垃圾回收器,都有一套共同的执行流程。 在 V8 的新生代的垃圾回收中,因为其空间小且存活对象少,所以全停顿的影响不大。但老生代中,占用主线程时间过久,会因为垃圾回收工作,影响其他工作,造成卡顿。 foo () { return 2020; } myName = 'cellinlab'; foo(); 生成对应的 AST 结构: 可以把 AST 看成代码的结构化的表示,编译器或者解释器后续的工作都依赖于 为了解决内存占用问题,V8 团队大幅重构了引擎架构,引入字节码,并且抛弃了之前的编译器,最终花了将进四年的时间,实现了现在的这套架构。

    61150编辑于 2023-05-17
  • 来自专栏六个周

    阶段三:V8工作原理

    堆中区域 V8中会把堆分为新生代和老生代两个区域。新生代存放的是生存时间短的对象,老生代存放的是生存时间久的对象。 堆中的这两块区域,V8分别使用两个不同的垃圾回收器,以便高效的实施垃圾回收。 垃圾回收器工作流程 标记空间中的活动对象和不活动对象。 回收非活动对象所占据的内存。 为了降低全停顿的卡顿影响,V8通过增量标记算法将完整的垃圾回收任务分为一个个小任务,并与JS脚本交替执行。 14 | 编译器和解释器:V8是如何执行一段JavaScript代码的? 首先,我们需要搞懂一些概念和原理:编译器(Compiler)、解释器(Interpreter)、抽象语法树(AST)、字节码(Bytecode)、**即时编译器(JIT)**等。 (Babel工作原理就是:ES6源码->ES6AST->ES5AST->ES5源码) 生成ATS经过两个阶段: 第一阶段是分词(词法分析),将一行行源码拆解成不可再分的最小当个字符或字符串token。

    67040编辑于 2022-10-28
  • 来自专栏SY小站的专栏

    k8s-apiserver工作原理

    API 接口,包括认证授权、数据校验以及集群状态变更等 提供其他模块之间的数据交互和通信的枢纽(其他模块通过 API Server 查询或修改数据,只有 API Server 才直接操作 etcd) 工作原理 /v1beta1 apiextensions.k8s.io/v1beta1 apiregistration.k8s.io/v1beta1 apps/v1 apps/v1beta1 apps/v1beta2 authentication.k8s.io/v1 authentication.k8s.io/v1beta1 authorization.k8s.io/v1 authorization.k8s.io/ /v1 networking.k8s.io/v1 policy/v1beta1 rbac.authorization.k8s.io/v1 rbac.authorization.k8s.io/v1beta1 storage.k8s.io/v1 storage.k8s.io/v1beta1 v

    2K30发布于 2020-06-19
  • 来自专栏容器云实践

    k8s 理解Service工作原理

    简单来说K8s提供了service对象来访问pod。我们在《k8s网络模型与集群通信》中也说过k8s集群中的每一个Pod(最小调度单位)都有自己的IP地址,都有IP了访问起来还不简单? 其实不然,一是k8s中pod不是持久性的,摧毁重建将获得新的IP,客户端通过变更IP来访问显然不合理。二是需要多个副本间的负载均衡。所以此时Service就冒出来了。 那么今天我们就来学习一下service,看看它是如何工作的。 IPVS模式 与iptalbes模式相比,IPVS模式工作在内核态,在同步代理规则时具有更好的性能,同时提高网络吞吐量为大型集群提供了更好的可扩展性。 IPVS 模式在工作时,当我们创建了前面的 Service 之后,kube-proxy 首先会在宿主机上创建一个虚拟网卡kube-ipvs0,并为它分配 Service VIP 作为 IP 地址,如图

    1.8K11编辑于 2022-03-14
  • 来自专栏我是攻城师

    JDK8中ArrayList的工作原理剖析

    JDK8源码中的ArrayList类结构定义如下: ? 总结: 本文介绍了JDK8中的ArrayList的工作原理和常用方法分析,此外ArrayList非线程安全,所以需要多线程的场景下,请使用jdk自带并发List结构或者Guava,Apache Common

    90350发布于 2018-05-14
  • 来自专栏我是攻城师

    JDK8中HashMap的工作原理剖析

    在jdk8中的HashMap是由三种数据结构组成:数组 + ( 链表 or 红黑树 ) 图示如下: ? 而在jdk8之前还只是数组+链表两种数据结构,在这里简单提下数组和链表的区别: 数组 优点:物理地址连续+按下标随机访问效率高O(1) 缺点:插入,删除效率低, 链表 优点:存储地址不连续,可灵活的扩展自己的长度 这个方法,保证指定的设置的table数组的长度必须是2的n次方,比如你初始化传入的是5,但是实际运行后你会发现table数组的长度是8,这是因为2的n次方,对于数组的扩容和重新赋值有比较大的好处,所以如果你传入的不是 但是位运算比模运算效率更高 在putVal插入数据的方法中,第一次会调用扩容方法,此外插入时还会判断该节点是链表还是红黑树,他们分别对应不同的赋值方法,并且如果单个bucket的节点数量大于8,还会将链表转化为红黑树 总结: 本文对JDK8中的HashMap的工作原理做了一个剖析,并介绍了一些核心的方法和注意事项,通过了解它的内部运行机制,以帮助我们更加合理的在实际开发中使用。

    1.6K110发布于 2018-05-14
  • 来自专栏我是攻城师

    JDK8中LinkedList的工作原理剖析

    Collection c)方法,这里面先判断了是否会出现索引越界的可能,然后分别初始化了两个临时节点pred和succ,分别作为index节点的前置节点和后置节点,如果不是在第一次初始化插入的情况下,这段代码的工作原理 (九)关于操作队列或者堆栈的方法 文章开头说了LinkedList可以当双端队列或者堆栈使用,这里面有一系列的方法,这里只简单列举几个常用的方法,因为原理比较简单所以不在叙述: ? 总结: 本文介绍了JDK8中LinkedList的工作原理,并对其常用的方法进行了分析,LinkedList底层是一个链表,链表在内存中不是一块连续的地址,而是用多少就会申请多少,所以它比ArrayList

    837120发布于 2018-05-15
  • 来自专栏禅林阆苑

    浏览器原理学习笔记03—V8工作原理

    浏览器原理学习笔记03—V8工作原理 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian Email V8 把堆分为 新生代 和 老生代 两个区域,新生代中存放生存时间短的对象,老生代中存放生存时间久的对象。新生区通常只支持 1~8M 的容量,使用 副垃圾回收器 进行回收。 [f8dqn3qlxv.png] JavaScript 是解释型语言,V8 执行 JavaScript 代码的流程总览。 AST 在很多项目中有着广泛的应用,如: Babel 的工作原理是先将 ES6 源码转换为 AST,再将 ES6 语法的 AST 转换为 ES5 语法的 AST,最后利用 ES5 的 AST 生成 JavaScript [b8wf1a27qs.jpeg]

    974158发布于 2020-05-02
  • 来自专栏全栈程序员必看

    servlet的工作原理_hibernate工作原理

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.8K40编辑于 2022-11-09
  • 来自专栏网络虚拟化

    一文读懂k8s service工作原理

    本文将深入探讨Kubernetes Service的工作原理,包括其定义、架构、服务流程、容器管理、监控与维护以及扩展应用等方面。 Kubernetes Service的工作流程包括以下几个步骤: 客户端发送请求到Kubernetes集群中的任意一个Pod。 Pod将请求转发到Service代理(kube-proxy)。 了解Kubernetes Service的工作原理、容器管理、监控与维护以及扩展应用等方面的知识,对于成功部署和管理Kubernetes集群至关重要。 写在最后,如果您对k8s感兴趣,欢迎关注公众号: 留下些许文字

    93520编辑于 2023-09-06
  • 来自专栏全栈程序员必看

    fastdfs工作原理(技术原理)

    **tracker server:**跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。 本次分享的主要内容包含:FastDFS各角色的任务分工/协作,文件索引的原理设计以及文件上传/下载操作的流程。

    1.8K30编辑于 2022-07-28
  • 来自专栏向治洪

    MIDlet工作原理

    明天继续这个系列的系统原理,谢谢大家!  补充: 今天看到论坛上有朋友提出了这样一个问题 : 两个midlet的切换!              

    957100发布于 2018-02-01
  • 来自专栏全栈程序员必看

    traceroute工作原理

    基本的原理是IP路由过程中对数据包TTL(Time to Live,存活时间)的处理。当路由器收到一个IP包时,会改动IP包的TTL(及由此造成的头部检验和checksum变化)。 依照分析,依据所在环境限制最多能够记录8~9个项目。   除了回显请求外,还能够利用icmp来实现时间请求。在icmp的数据包中能够包括发送时间,目的主机收到后再附上自身当时时间才发回。

    1.4K20编辑于 2022-09-06
  • 来自专栏java工会

    Spring工作原理

    1、spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。

    80910发布于 2018-11-23
  • 来自专栏IT技术精选文摘

    ZooKeeper工作原理

    每个Server在工作过程中有四种状态: l LOOKING:当前Server不知道Leader是谁,正在搜寻 l LEADING:当前Server即为选举出来的Leader l FOLLOWING 流程图如下所示: Leader工作流程 Leader主要有三个功能: 1、恢复数据; 2、维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型; 3、Learner的消息类型主要有 Leader的工作流程简图如下所示: Follower工作流程 Follower主要有四个功能: 1、向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息); Follower的工作流程简图如下所示: (微信公众号:IT技术精选文摘, 微信号:ITHK01,欢迎订阅) 对于Observer的流程不再叙述,Observer流程和Follower的唯一不同的地方就是

    1.4K80发布于 2018-01-30
  • 来自专栏java工会

    Spring工作原理

    1、spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。

    69010发布于 2018-11-07
  • 来自专栏shysh95

    CPU工作原理

    Hi~朋友,点点关注不迷路 摘要 搭建开发测试环境 程序分析 地址、vstart CPU工作原理 精彩预告 1. int 0x10 mov ah,3 mov bh,0 int 0x10 mov ax,message mov bp,ax mov cx,8 CPU工作原理 CPU的工作模式分为实模式和保护模式,实模式的最大寻址空间为1M。关于实模式和保护模式在后续我们会讲解。在介绍这两种模式之前,我们还是先讲CPU的工作原理。 本期的CPU工作原理就介绍到这,我是shysh95,我们下期再见!

    99030发布于 2021-07-16
  • 来自专栏星汉技术

    HBase工作原理

    HBASE原理 一、原理 1、物理存储 1.hregion     hbase表中的数据按照行键的字典顺序排序,hbase表中的数据按照行的的方向切分为多个region。      memstore内存有限,当写入数量达到一定的阈值的时候,就会创建一个新的memstore继续工作,而旧的memstore会用一个单独的线程将数据写出到storefile中,最终清空旧的memstore LSM树原理把一棵大树拆分成N棵小树,它首先写入内存中,随着小树越来越大,内存中的小树会flush到磁盘中,磁盘中的树定期可以做merge操作,合并成一棵大树,以优化读性能。 ?      数据按照行键切分为多个HRegion,分布在多个RegionServer中,查询大量数据时,多个RegionServer可以一起工作,从而提高速度。 5>不宜过长     行键最多可以达到64KB,但是最好是在10~100字节之间,最好不要超过16字节,越短越好,最好是8字节的整数倍。     

    3.3K120发布于 2018-05-11
  • 来自专栏xuefly

    Keepalived工作原理

    、LVS配置  全局配置又包括两个子配置: 全局定义(global definition) 静态IP地址/路由配置(static ipaddress/routes) Keepalived服务VRRP的工作原理 : Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主宕机的时候,备节点就会接管主节点的资源

    80710编辑于 2022-12-29
领券