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

Skywalking系列之最新版9.2.0-JavaAgent本地构建

  • MAC 10.15.7
  • IDEA 2021.2
  • skywalking-agent 9.2.0-SNAPSHOT
  • JDK 17/21 (最新的代码要看最新的要求,注意不能使用JDK8,会构建失败)
  • Maven 3.6.0

关于本地构建JavaAgent源码

1、获取源码,加载submodule

分步执行:

git clone https://github.com/apache/skywalking-java.git
git submodule init //初始化仓库目录位置
git submodule update //**这步骤至关重要**

或者一气呵成:

git clone --recurse-submodules https://github.com/apache/skywalking.git

2、maven构建

#注意JDK版本,JDK11,最新的要求JDK17/21
mvn clean package -Dmaven.test.skip=true

此步骤最为耗时,因为项目众多,错误点主要集中于:

  1. JDK版本,构建前一定要知晓JDK版本的要求,避免出耽误时间或者出奇怪的问题
  2. 依赖的拉取,maven仓库配置合适的代理地址,极小部分依赖拉取失败的可以想办法单独下载包导入到本地,降低拉取失败的风险

注意有耐心,甄别异常

3、添加编译后的文件

构建后产生编译的文件,需要加为源码,找到以下文件夹右键 “Mark Dictory as” -> “Generated Sources Root”

~/skywalking-java/apm-protocol/apm-network/target/generated-sources/protobuf/grpc-java
~/skywalking-java/apm-protocol/apm-network/target/generated-sources/protobuf/java

正常就可以进行本地调试了

4、skywalking-agent包

在{home}/skywalking-agent/下,就是我们常规下载的可执行包的内容了

  • plugins: 是会被真实扫描的插件列表,可以按需取用。删除/移除就不会被扫描
  • optional-plugins: 是补充的一些插件,有需要不在plugins中的可以自行粘贴过去
  • bootstrap-plugins:通常默认不动
  • optional-reporter-plugins: 按需加入
  • activations: 通常默认不动
  • config: agent的配置
  • licenses:
  • logs: agent的日志,通常排查问题可以先看这里有没有报错哦
 $tree
.
├── LICENSE
├── NOTICE
├── activations
│   ├── apm-toolkit-kafka-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-log4j-1.x-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-log4j-2.x-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-logback-1.x-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-logging-common-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-meter-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-micrometer-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-opentracing-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-trace-activation-9.2.0-SNAPSHOT.jar
│   ├── apm-toolkit-webflux-6.x-activation-9.2.0-SNAPSHOT.jar
│   └── apm-toolkit-webflux-activation-9.2.0-SNAPSHOT.jar
├── bootstrap-plugins
│   ├── apm-jdk-forkjoinpool-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jdk-http-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jdk-threading-plugin-9.2.0-SNAPSHOT.jar
│   └── apm-jdk-threadpool-plugin-9.2.0-SNAPSHOT.jar
├── config
│   └── agent.config
├── licenses
│   └── LICENSE-asm.txt
├── logs
│   └── skywalking-api.log
├── optional-plugins
│   ├── apm-customize-enhance-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-ehcache-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-fastjson-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-gson-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-guava-cache-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jackson-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-kotlin-coroutine-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mybatis-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-nacos-client-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-netty-http-4.1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-quartz-scheduler-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-resttemplate-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-sentinel-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-shenyu-2.4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-annotation-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-cloud-gateway-2.0.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-cloud-gateway-2.1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-cloud-gateway-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-tx-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-webflux-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-webflux-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-springmvc-annotation-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-trace-ignore-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-zookeeper-3.4.x-plugin-9.2.0-SNAPSHOT.jar
│   └── trace-sampler-cpu-policy-plugin-9.2.0-SNAPSHOT.jar
├── optional-reporter-plugins
│   ├── kafka-reporter-plugin-9.2.0-SNAPSHOT.jar
│   ├── lz4-java-1.6.0.jar
│   ├── snappy-java-1.1.7.3.jar
│   └── zstd-jni-1.4.3-1.jar
├── plugins
│   ├── apm-activemq-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-aerospike-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-armeria-0.84.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-armeria-0.85.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-armeria-1.0.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-asynchttpclient-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-avro-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-canal-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-cassandra-java-driver-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-clickhouse-0.3.1-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-clickhouse-0.3.2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-cxf-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-dubbo-2.7.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-dubbo-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-dubbo-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-elastic-job-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-elasticjob-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-elasticsearch-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-elasticsearch-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-elasticsearch-7.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-feign-default-http-9.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-finagle-6.25.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-grizzly-2.x-4.x-work-threadpool-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-grizzly-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-grpc-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-guava-eventbus-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-h2-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-hbase-1.x-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-hikaricp-3.x-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-httpClient-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-httpasyncclient-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-httpclient-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-httpclient-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-httpclient-commons-9.2.0-SNAPSHOT.jar
│   ├── apm-hutool-http-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-hystrix-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-impala-jdbc-2.6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-influxdb-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jdbc-commons-9.2.0-SNAPSHOT.jar
│   ├── apm-jersey-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jersey-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jetty-client-11.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jetty-client-9.0-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jetty-client-9.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jetty-server-11.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jetty-server-9.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-jetty-thread-pool-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-kafka-commons-9.2.0-SNAPSHOT.jar
│   ├── apm-kafka-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-kylin-jdbc-2.6.x-3.x-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-lettuce-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-light4j-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mariadb-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mongodb-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mongodb-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mongodb-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mssql-commons-9.2.0-SNAPSHOT.jar
│   ├── apm-mssql-jdbc-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mssql-jtds-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mysql-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mysql-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mysql-8.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-mysql-commons-9.2.0-SNAPSHOT.jar
│   ├── apm-neo4j-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-netty-socketio-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-nutz-http-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-nutz-mvc-annotation-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-okhttp-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-okhttp-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-okhttp-common-9.2.0-SNAPSHOT.jar
│   ├── apm-play-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-postgresql-8.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-pulsar-2.2-2.7-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-pulsar-2.8.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-pulsar-common-9.2.0-SNAPSHOT.jar
│   ├── apm-quasar-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-rabbitmq-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-redisson-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-resttemplate-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-resttemplate-4.3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-rocketMQ-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-rocketmq-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-rocketmq-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-rocketmq-client-java-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-servicecomb-java-chassis-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-sharding-sphere-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-sharding-sphere-4.1.0-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-shardingsphere-4.0.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-shardingsphere-5.0.0-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-solrj-7.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-async-annotation-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-cloud-feign-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-cloud-feign-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-concurrent-util-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-core-patch-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-kafka-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-kafka-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-scheduled-annotation-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-webflux-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-spring-webflux-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-springmvc-annotation-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-springmvc-annotation-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-springmvc-annotation-5.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-springmvc-annotation-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-springmvc-annotation-commons-9.2.0-SNAPSHOT.jar
│   ├── apm-spymemcached-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-struts2-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-tomcat-thread-pool-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-undertow-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-undertow-worker-thread-pool-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-vertx-core-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-vertx-core-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-xmemcached-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── apm-xxl-job-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── baidu-brpc-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── baidu-brpc-plugin-9.2.0-SNAPSHOT.jar
│   ├── dbcp-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── druid-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── dubbo-2.7.x-conflict-patch-9.2.0-SNAPSHOT.jar
│   ├── dubbo-3.x-conflict-patch-9.2.0-SNAPSHOT.jar
│   ├── dubbo-conflict-patch-9.2.0-SNAPSHOT.jar
│   ├── elasticsearch-common-9.2.0-SNAPSHOT.jar
│   ├── graphql-12.x-15.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── graphql-16plus-plugin-9.2.0-SNAPSHOT.jar
│   ├── graphql-8.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── graphql-9.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── jedis-2.x-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── jedis-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── jsonrpc4j-1.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── micronaut-http-client-plugin-9.2.0-SNAPSHOT.jar
│   ├── micronaut-http-server-plugin-9.2.0-SNAPSHOT.jar
│   ├── motan-plugin-9.2.0-SNAPSHOT.jar
│   ├── nats-2.14.x-2.15.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── okhttp-2.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── resteasy-server-3.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── resteasy-server-4.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── resteasy-server-6.x-plugin-9.2.0-SNAPSHOT.jar
│   ├── resttemplate-commons-9.2.0-SNAPSHOT.jar
│   ├── sofa-rpc-plugin-9.2.0-SNAPSHOT.jar
│   ├── spring-commons-9.2.0-SNAPSHOT.jar
│   ├── spring-webflux-5.x-webclient-plugin-9.2.0-SNAPSHOT.jar
│   ├── spring-webflux-6.x-webclient-plugin-9.2.0-SNAPSHOT.jar
│   ├── thrift-plugin-9.2.0-SNAPSHOT.jar
│   ├── tomcat-10x-plugin-8.11.0.jar
│   ├── tomcat-7.x-8.x-plugin-9.2.0-SNAPSHOT.jar
│   └── websphere-liberty-23.x-plugin-9.2.0-SNAPSHOT.jar
└── skywalking-agent.jar8 directories, 196 files

在应用中就可以加这个路径直接使用,日志见logs文件夹

相关文章:

Skywalking系列之最新版9.2.0-JavaAgent本地构建

MAC 10.15.7IDEA 2021.2skywalking-agent 9.2.0-SNAPSHOTJDK 17/21 (最新的代码要看最新的要求,注意不能使用JDK8,会构建失败)Maven 3.6.0 关于本地构建JavaAgent源码 1、获取源码,加载submodule 分步执行: git clone https:/…...

olap/clickhouse-编译器优化与向量化

本文主要结合15721和clickhouse源码来聊聊向量化,正好我最近也在用Eigen做算子加速,了解下还是有好处的。 提示编译器 提示编译器而不是复杂化简单的代码 什么时候使用汇编,什么时候使用SIMD?下面有几个基本原则: …...

RK3399平台开发系列讲解(内核入门篇)网络协议的分层

🚀返回专栏总目录 文章目录 一、应用层二、传输层三、网络层四、数据链路层(Data Link Layer)五、物理层沉淀、分享、成长,让自己和他人都能有所收获!😄 📢对于多数的应用和用户而言,使用互联网的一个基本要求就是数据可以无损地到达。用户通过应用进行网络通信࿰...

Idea远程debugger调试

当我们服务部署在服务器上,我们想要像在本地一样debug,就可以使用idea自带的Remote JVM Debug 创建Remote JVM Debug服务器启动jar打断点进入断点 当我们服务部署在服务器上,我们想要像在本地一样debug,就可以使用idea自带的 Remote JVM Debug) 创建Rem…...

MATLAB - Gazebo 仿真环境

系列文章目录 前言 机器人系统工具箱(Robotics System Toolbox™)为使用 Gazebo 模拟器可视化的模拟环境提供了一个界面。通过 Gazebo,您可以在真实模拟的物理场景中使用机器人进行测试和实验,并获得高质量的图形。 Gazebo 可在…...

selenium自动化webdriver下载及安装

1、确认浏览器的版本 在浏览器的地址栏,输入chrome://version/,回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号(只看大版本)下载对应文件 2.2 116版本通过…...

网络基础介绍

1.网线制作 1.1 网线制作需要的工具 网线 网线钳 水晶头 测试仪 ​编辑 1.2 网线的标准 1.3 网线的做法 2.集线器&交换机&路由器的介绍 3.OSI七层模型 4.路由器的设置 4.1 常见的路由器设置地址 4.2 常见的路由器账号密码 4.3 登录路由器 设置访客网…...

Java中四种引用类型(强、软、弱、虚)

目录 引言 强引用(Strong References) 软引用(Soft References) 弱引用(Weak References) 虚引用(Phantom References) 引用类型的应用场景 总结 引言 Java中的引用类型是管理…...

【MyBatis学习笔记】MyBatis基础学习

MyBatis基础 MyBatis简介MyBatis特性MyBatis下载和其他持久化层技术对比 核心配置文件详解默认的类型别名 搭建MyBatis开发环境创建maven工程创建MyBatis的核心配置文件创建mapper接口创建MyBatis的映射文件通过junit测试功能加入log4j日志功能 MyBatis获取参数值的两种方式&am…...

还在为论文焦虑?免费AI写作大师帮你搞定

先来看1分钟的视频,对于要写论文的你来说,绝对有所值! 还在为写论文焦虑?免费AI写作大师来帮你三步搞定 第一步:输入关键信息 第二步:生成大纲 稍等片刻后,专业大纲生成(由于举例&am…...

3.10【窗口】窗口使用示例(窗口缩放 三)

五,从窗口所有者放大 要从窗口的所有者本身进行放大,可以将源图像矩形设置得比窗口小。可以想象我们在一张图片中选取一部分进行放大的操作。 屏幕使用默认位置 (0,0) 作为源矩形、窗口和显示器显示的左上角。要放大源图形的特定区域,必须设置源矩形的大小。 源矩形由这些…...

【机器学习】密度聚类:从底层手写实现DBSCAN

【机器学习】Building-DBSCAN-from-Scratch 概念代码数据导入实现DBSCAN使用样例及其可视化 补充资料 概念 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算…...

2023-12-20 二叉搜索树的最近公共祖先和二叉搜索树中的插入操作和删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 思想:和二叉树的公共最近祖先节点的思路基本一致的!就是不用从下往上遍历处理!可以利用的二叉搜索树的特点从上往下处理了!而且最近公共节点肯定是第一个出现在【q,p】这个区间的内的&…...

pytorch文本分类(三)模型框架(DNNtextCNN)

pytorch文本分类(三)模型框架(DNN&textCNN) 原任务链接 目录 pytorch文本分类(三)模型框架(DNN&textCNN)1. 背景知识深度学习 2. DNN2.1 从感知器到神经网络2.2 DNN的基本…...

<长篇文章!!>数据结构与算法的重要知识点与概要总结 ( •̀ ω •́ )✧✧临近考试和查漏补缺的小伙伴看这一篇就都懂啦~

目录 一、数据结构概论二、算法概论三、线性表四、栈五、队列六、串七、多维数组与矩阵八、广义表九、树与二叉树十、图 一、数据结构概论 1、数据元素和数据项 数据由数据元素组成,即数据元素是数据的基本单位,而数据元素又由若干个数据项组成&#xf…...

【安全】audispd调研

audispd调研 1 问题背景 在Linux中,当某个进程调用audit_set_pid将自己的pid保存到内核的audit模块后,如果有日志生成,kaudit内核线程就会通过netlink通信机制将审计日志发送给audit_pid,因此,只能有一个进程占用aud…...

WINDOWS(WIN11)通过IP添加网络打印机

点击添加设备 点击手动添加 使用IP地址或主机名添加打印机 选择TCP/IP设备,输入打印机地址 如果有正确驱动就安装,没有就取消。 通过手动设置添加本地打印机或网络打印机 使用现有的端口 根据打印机IP,选择标准端口。 成功! 到…...

华为数通试题

选择题 华为数通推出的面向企业的云计算平台是? A) FusionSphere B) CloudEngine C) Agile Controller D) eSight 下面哪个不是华为数通的核心交换机系列? A) S12700 B) S5700 C) S9300 D) CloudEngine 华为数通的企业级路由器系列包括哪个&#xff1f…...

Labview Vision 机器视觉使用,从下载程序安装应用,到实战找硬币并输出值

1.前言 大家好,今天我要和机器人一起配合来打算 做机器视觉 用Labview 和 Vision 联动实现机器的视觉 2.下载软件-软件的安装 我们除了基础款的labview软件 还要安装视觉四件套 1.Labview 编程平台(我是 2023 q3) 2. NI - IMAQdx (驱动软…...

【delphi11】delphi基础探索【三、基础组件和事件】

目录 基础组件 1. TButton(按钮) 2. TLabel(标签) 3. TEdit(编辑框) 4. TMemo(多行编辑框) 5. TComboBox(组合框) 6. TCheckBox(复选框&…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...