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

Oracle的学习心得和知识总结(十三)|Oracle数据库Real Application Testing之Database Reply实操(一)

注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下:

1、参考书籍:《Oracle Database SQL Language Reference》
2、参考书籍:《PostgreSQL中文手册》
3、EDB Postgres Advanced Server User Guides,点击前往
4、PostgreSQL数据库仓库链接,点击前往
5、PostgreSQL中文社区,点击前往
6、Oracle Real Application Testing 官网首页,点击前往
7、Oracle 21C RAT Testing Guide,点击前往


1、本文内容全部来源于开源社区 GitHub和以上博主的贡献,本文也免费开源(可能会存在问题,评论区等待大佬们的指正)
2、本文目的:开源共享 抛砖引玉 一起学习
3、本文不提供任何资源 不存在任何交易 与任何组织和机构无关
4、大家可以根据需要自行 复制粘贴以及作为其他个人用途,但是不允许转载 不允许商用 (写作不易,还请见谅 💖)


Oracle数据库Real Application Testing之Database Reply实操

  • 文章快速说明索引
  • 数据库回放的演示
    • 负载捕获
    • 负载处理
    • 负载重放
    • 分析报告



文章快速说明索引

学习目标:

目的:接下来这段时间我想做一些兼容Oracle数据库Real Application Testing (即:RAT)上的一些功能开发,本专栏这里主要是学习以及介绍Oracle数据库功能的使用场景、原理说明和注意事项等,基于PostgreSQL数据库的功能开发等之后 由新博客进行介绍和分享!


学习内容:(详见目录)

1、Oracle数据库Real Application Testing之Database Reply实操(一)


学习时间:

2023年03月23日 21:48:11


学习产出:

1、Oracle数据库Real Application Testing之Database Reply实操(一)
2、CSDN 技术博客 1篇


注:下面我们所有的学习环境是Centos7+PostgreSQL15.0+Oracle19c+MySQL5.7

postgres=# select version();version                                   
-----------------------------------------------------------------------------PostgreSQL 15.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.1.0, 64-bit
(1 row)postgres=##-----------------------------------------------------------------------------#SQL> select * from v$version; BANNER									    BANNER_FULL 								BANNER_LEGACY									CON_ID
--------------------------------------------------------------------------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production	    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production	Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production		     0Version 19.3.0.0.0SQL>
#-----------------------------------------------------------------------------#mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.19    |
+-----------+
1 row in set (0.06 sec)mysql>

数据库回放的演示

在这里插入图片描述

数据库重放由四个主要步骤组成,如上图所示,如下所述:

  1. 工作负载捕获

    启用工作负载捕获后,所有指向 Oracle 数据库的外部客户端请求都将被跟踪并存储在数据库服务器主机文件系统上的二进制文件(称为捕获文件)中。Oracle 建议在捕获负载之前对整个数据库进行备份。用户指定捕获文件的位置以及工作负载捕获的开始和结束时间。在此过程中,与外部数据库调用有关的所有信息都将写入捕获文件

  2. 工作负载处理

    捕获工作负载后,必须处理捕获文件中的信息。此处理将捕获的数据转换为重放文件,并创建重放工作负载所需的所有必要元数据。捕获文件通常会被复制到另一个系统进行处理。在重放之前,必须为每个捕获的工作负载执行一次此操作。捕获的工作负载处理后,可以在重放系统上重复重放。由于工作负载处理可能非常耗时且资源密集,因此通常建议在将重放工作负载的测试系统上执行此步骤

  3. 工作负载回放

    处理完捕获的工作负载后,就可以重放了。然后,名为 Replay Client 的客户端程序处理重播文件,并以与捕获系统完全相同的时间和并发性将调用提交给数据库。根据捕获的工作负载,您可能需要一个或多个重放客户端才能正确重放工作负载。提供了一个校准工具来帮助确定工作负载所需的重播客户端数量。应该注意的是,由于重放了整个工作负载,包括 DML 和 SQL 查询,因此重放系统中的数据必须与捕获其工作负载的生产系统中的数据相同,以便能够为报告目的进行可靠的分析

  4. 分析和报告

    提供了广泛的报告,以便对捕获和重放进行详细分析。报告重放期间遇到的任何错误。显示 DML 或查询返回的行中的任何差异。提供了捕获和回放之间的基本性能比较。对于高级分析,回放比较周期和其他 AWR 报告可用于详细比较捕获和回放之间的各种统计数据


负载捕获

首先建立捕获目录,如下:

[oracle@dbserver ~]$ pwd
/home/oracle
[oracle@dbserver ~]$ mkdir db_replay_capture
[oracle@dbserver ~]$ cd db_replay_capture/
[oracle@dbserver db_replay_capture]$ 
[oracle@dbserver db_replay_capture]$ pwd
/home/oracle/db_replay_capture
[oracle@dbserver db_replay_capture]$
[oracle@dbserver ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 23 21:59:36 2023
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.  All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> create or replace directory db_replay_capture_dir as '/home/oracle/db_replay_capture';Directory created.SQL> 

建立测试表以及插入数据,如下:

SQL> conn c##spa123/spa123
Connected.
SQL> 
SQL> create table test (id number, cust_name varchar2(20), dt date, amt number(8,2), store_id number(2));Table created.SQL> create sequence test_id_seq start with 1 maxvalue 99999999999999 minvalue 1 nocycle cache 20;Sequence created.SQL> 

注:我们这里测试环境只用一台机器来模拟数据库重放,所以需要先建立一个还原点。

需要先确认是开启了归档模式,如下:

SQL> conn /as sysdba
Connected.-- 如下没有开启归档
SQL> archive log list;
Database log mode	       No Archive Mode
Automatic archival	       Disabled
Archive destination	       /home/oracle/oracle19c/product/19c/dbhome_1/dbs/arch
Oldest online log sequence     77
Current log sequence	       79
SQL> 
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.Total System Global Area 1157624440 bytes
Fixed Size		    9134712 bytes
Variable Size		  620756992 bytes
Database Buffers	  520093696 bytes
Redo Buffers		    7639040 bytes
Database mounted.
SQL> archive log list;
Database log mode	       No Archive Mode
Automatic archival	       Disabled
Archive destination	       /home/oracle/oracle19c/product/19c/dbhome_1/dbs/arch
Oldest online log sequence     77
Current log sequence	       79
SQL> alter database archivelog;Database altered.SQL> select flashback_on from v$database;FLASHBACK_ON
------------------
NOSQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       /home/oracle/oracle19c/product/19c/dbhome_1/dbs/arch
Oldest online log sequence     77
Next log sequence to archive   79
Current log sequence	       79
SQL>
SQL> alter system set db_recovery_file_dest_size=5G;System altered.SQL> alter system set db_recovery_file_dest='/home/oracle/flash_recovery_area' scope=both;System altered.SQL> alter system set db_recovery_file_dest_size=60G scope=both;System altered.SQL> alter system set db_flashback_retention_target=4320 scope=both;System altered.SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     77
Next log sequence to archive   79
Current log sequence	       79
SQL> alter database flashback on;Database altered.SQL> select flashback_on from v$database;FLASHBACK_ON
------------------
YESSQL>

接下来,建立还原点,如下:

SQL> create restore point mypoint;Restore point created.SQL>

注:因为我们这里想要 capture 所有的信息,就跳过 add_filter 的设置。关于设置过滤器,可以参见本人后面博客的详细介绍!


接下来,就可以开启捕获了,如下:

-- sysdbaSQL> BEGINDBMS_WORKLOAD_CAPTURE.start_capture (name=>'test_capture_1', dir=>'DB_REPLAY_CAPTURE_DIR', duration=> NULL);
END;
/  2    3    4  PL/SQL procedure successfully completed.SQL>

开始负载模拟,如下:

[oracle@dbserver ~]$ pwd
/home/oracle
[oracle@dbserver ~]$ cat insert_test.sql 
declarel_stmt varchar2(2000);
beginfor ctr in 1..1000 loopl_stmt := 'insert into test values ('||test_id_seq.nextval||','||''''||dbms_random.string('U',20)||''','||'sysdate - '||round(dbms_random.value(1,365))||','||round(dbms_random.value(1,999999),2)||','||round(dbms_random.value(1,99))||')';dbms_output.put_line(l_stmt);execute immediate l_stmt;commit;end loop;
end;
/[oracle@dbserver ~]$
SQL> conn c##spa123/spa123
Connected.
SQL> select * from test;no rows selectedSQL> @/home/oracle/insert_test.sqlPL/SQL procedure successfully completed.SQL> select count(*) from test;COUNT(*)
----------1000SQL>

停止捕获,如下:

SQL> conn / as sysdba
Connected.
SQL> BEGINDBMS_WORKLOAD_CAPTURE.finish_capture;
END;
/  2    3    4  PL/SQL procedure successfully completed.SQL>

查看捕获的目录,如下:

[oracle@dbserver db_replay_capture]$ ls
cap  capfiles
[oracle@dbserver db_replay_capture]$ ls cap
wcr_cr.html  wcr_cr.text  wcr_cr.xml  wcr_fcapture.wmd  wcr_scapture.wmd
[oracle@dbserver db_replay_capture]$ 
[oracle@dbserver db_replay_capture]$ ls capfiles/
inst1
[oracle@dbserver db_replay_capture]$ ls capfiles/inst1/
aa  ab  ac  ad  ae  af  ag  ah  ai  aj
[oracle@dbserver db_replay_capture]$
[oracle@dbserver db_replay_capture]$ tree .
.
├── cap
│   ├── wcr_cr.html
│   ├── wcr_cr.text
│   ├── wcr_cr.xml
│   ├── wcr_fcapture.wmd
│   └── wcr_scapture.wmd
└── capfiles└── inst1├── aa│   ├── wcr_1st9dh0000000.rec│   ├── wcr_1st9dh0000001.rec│   └── wcr_1stf7h0000002.rec├── ab├── ac├── ad├── ae├── af├── ag├── ah├── ai└── aj13 directories, 8 files
[oracle@dbserver db_replay_capture]$

此时获取caputre_id,如下:

-- 通过内部函数读取:SQL> select DBMS_WORKLOAD_CAPTURE.get_capture_info('DB_REPLAY_CAPTURE_DIR') FROM dual;DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO('DB_REPLAY_CAPTURE_DIR')
---------------------------------------------------------------1SQL>-- 读取dba_workload_captures视图读取:
SQL> SELECT id, name FROM dba_workload_captures;ID NAME
---------- --------------------------------------------------------------------------------------------------------------------------------1 test_capture_1SQL>

负载处理

注:由于是测试环境、捕获和重放是同一台机器(正式环境下需要将捕获的文件复制到目标机器上),现在将数据库恢复到开始捕获前的状态,如下:

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.Total System Global Area 1157624440 bytes
Fixed Size		    9134712 bytes
Variable Size		  620756992 bytes
Database Buffers	  520093696 bytes
Redo Buffers		    7639040 bytes
Database mounted.
SQL> flashback database to restore point mypoint;Flashback complete.SQL> alter database open resetlogs;Database altered.SQL>
-- 数据库已闪回SQL> conn c##spa123/spa123
Connected.
SQL> select * from test;no rows selectedSQL>

之后就开始预处理,由于是同一台机器测试的,数据库的目录也不需要重新建立,否则还需要建立目录:

CREATE OR REPLACE DIRECTORY db_replay_capture_dir AS '/home/oracle/db_replay_capture/';
SQL> conn / as sysdba
Connected.
SQL> 
SQL> BEGIN
DBMS_WORKLOAD_REPLAY.process_capture('DB_REPLAY_CAPTURE_DIR');
END;
/  2    3    4  PL/SQL procedure successfully completed.SQL>

这个时候再去看一下目录,上下两次对比 如下:

在这里插入图片描述

如上,预处理之后,目录方的中生成了重演的数据,pp19.3.0.0.0的目录


负载重放

这里使用wrc工具进行校验,效验结果会显示完成replay需要replay clients和hosts的数量,如下:

[oracle@dbserver ~]$ wrc mode=calibrate replaydir=/home/oracle/db_replay_captureWorkload Replay Client: Release 19.3.0.0.0 - Production on Thu Mar 23 23:02:49 2023Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.Report for Workload in: /home/oracle/db_replay_capture
-----------------------Recommendation:
Consider using at least 1 clients divided among 1 CPU(s)
You will need at least 3 MB of memory per client process.
If your machine(s) cannot match that number, consider using more clients.Workload Characteristics:
- max concurrency: 1 sessions
- total number of sessions: 2Assumptions:
- 1 client process per 100 concurrent sessions
- 4 client processes per CPU
- 256 KB of memory cache per concurrent session
- think time scale = 100
- connect time scale = 100
- synchronization = TRUE[oracle@dbserver ~]$

接下来,开始replay。在上面的效验结果,显示一个CPU上建议一个client,所以我们这里开始一个replay client。

-- 使用 initialize_replay 装载metadata到tables里SQL> EXEC DBMS_WORKLOAD_REPLAY.initialize_replay (replay_name=>'test_capture_1', replay_dir=>'DB_REPLAY_CAPTURE_DIR');PL/SQL procedure successfully completed.SQL>
-- 将数据改成PREPARE REPLAY 模式:SQL> exec DBMS_WORKLOAD_REPLAY.prepare_replay(synchronization=>TRUE);PL/SQL procedure successfully completed.SQL> 
-- 检查replay的状态:SQL> select name, status from dba_workload_replays;NAME																 STATUS
-------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
test_capture_1															 PREPARESQL>
[oracle@dbserver ~]$ wrc system/123456 mode=replay replaydir=/home/oracle/db_replay_capture-- 执行之后,replay client 被暂停,并等待start replay 。 另开一个sqlplus 窗口执行如下命令:
[oracle@dbserver ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 23 23:16:36 2023
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.  All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> exec DBMS_WORKLOAD_REPLAY.START_REPLAY ();PL/SQL procedure successfully completed.SQL> select name,status from  dba_workload_replays;NAME										 STATUS
-------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
test_capture_1									 IN PROGRESSSQL>

在这里插入图片描述

等dba_workload_replays中的状态变成compelte就完成replay。此时replayclient会显示操作开始和结束的时间,如下:

SQL> select name,status from  dba_workload_replays;NAME																 STATUS
-------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------
test_capture_1															 COMPLETEDSQL> 

在这里插入图片描述


这时就可以验证replay结果,如下:

SQL> conn c##spa123/spa123
Connected.
SQL> select count(*) from test;COUNT(*)
----------1000SQL>

分析报告

生成报告,如下:

SQL> DECLAREl_report  CLOB;
BEGINl_report := DBMS_WORKLOAD_REPLAY.report(replay_id=>1, format=>DBMS_WORKLOAD_REPLAY.TYPE_HTML);
END;
/  2    3    4    5    6  PL/SQL procedure successfully completed.SQL>
[oracle@dbserver db_replay_capture]$ ls
cap  capfiles  pp19.3.0.0.0  rep78492439
[oracle@dbserver db_replay_capture]$ ls rep78492439/
wcr_ra_78492439.dmp  wcr_ra_78492439.log  wcr_replay_div_summary.extb  wcr_replay_thread.extb  wcr_replay.wmd  wcr_rep_uc_graph_78492439.extb  wcr_rr_78492439.cc.xml  wcr_rr_78492439.html  wcr_rr_78492439.txt  wcr_rr_78492439.xml  wcr_tracked_commits.extb
[oracle@dbserver db_replay_capture]$ 

如上,目录下面多了rep开头的子目录,html文件就是生成的报告。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

相关文章:

Oracle的学习心得和知识总结(十三)|Oracle数据库Real Application Testing之Database Reply实操(一)

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Guid…...

CAD外部参照如何重新定位?CAD外部参照重定位步骤

CAD外部参照如何重新定位?这个问题并不算是一个常见的问题,但偶尔也会遇到,今天小编就来给大家简单介绍一下浩辰CAD软件中CAD外部参照重定位的操作步骤,一起来看看吧! CAD外部参照重定位步骤: 浩辰CAD软件…...

11. C#高级进阶

一、C# 异常处理 在 C# 中,异常是在程序运行出错时引发的,所有异常都派生自 System.Exception 类。异常处理就是处理运行时错误的过程,通过异常处理可以使程序在发生错误时保持正常运行。 C# 中的异常处理基于四个关键字构建,分别…...

网络编程套接字( TCP协议通讯流程)

目录 1、绑定失败问题 2、TCP协议通讯流程 三次握手的过程 数据传输的过程 四次挥手的过程 TCP和UDP对比 1、绑定失败问题 当我们测试网络代码时,先将服务端绑定8080端口运行,然后运行客户端,并让客户端连接当前服务器: 当有客户…...

WPF毛笔字实现过程

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

MHA实现mysql数据库高可用

目录 MHA原理 MHA工具包 MHA实现mysql高可用实战 MHA原理 ①MHA利用 SELECT 1 As Value 指令判断master服务器的健康性,一旦master 宕机,MHA 从宕机崩溃的master保存二进制日志事件(binlog events) ②识别含有最新更新的slave ③应用差异的中继日志&…...

leetcode每日一题:55. 跳跃游戏

系列:贪心算法 语言:java 题目来源:Leetcode55. 跳跃游戏 题目 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输…...

【C++】map 和 set

文章目录一、关联式容器与键值对1、关联式容器2、键值对 pair3、树形结构的关联式容器二、set1、set 的介绍2、set 的使用三、multiset四、map1、map 的介绍2、map 的使用五、multimap一、关联式容器与键值对 1、关联式容器 在C初阶的时候,我们已经接触了 STL 中的…...

基于SpringBoot的酒店管理系统

系统环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/i…...

JAVA框架知识整理

框架知识整理 SpringBoot、SpringMVC、Spring的区别和他们的作用? SpringBoot是一个微服务框架,其简化了Spring应用的创建、运行、测试、部署。使开发人员无需过多的关注XML配置。里面整合了许多框架例如SpringMVC、Spring Security和Spring Data JPA。…...

运算放大器:电压比较器

目录一、单限电压比较器二、滞回电压比较器三、窗口电压比较器最近在学习电机控制,遇到了与运算放大电路相关的知识,然而太久没有接触模拟电路,对该知识已经淡忘了,及时温故而知新,做好笔记,若有错误、不足…...

Linux的基础知识

根目录和家目录根目录:是Linux中最底层的目录,用"/"表示家目录:当前用户所在的路径,用“~”表示,root用户的家目录和普通用户的家目录不一样,普通用户的家目录在/home路径下,每一个用…...

【JavaEE】 IntelliJ IDEA 2022.2最新版Tomcat导入依赖详细教程全解及创建第一个Servlet程序

目录 一、软件资源 二、放置settings.xml文件 三、创建项目 四、引入依赖 ​五、创建目录 六、编写代码 写在前面:☞What is Servlet? Servlet其实是一种实现动态页面的技术。是一组由Tomcat提供给程序员的API(应用程序编程接口)…...

常见的卷积神经网络结构——分类、检测和分割

本文持续更新~~ 本文整理了近些年来常见的卷积神经网络结构,涵盖了计算机视觉领域的几大基本任务:分类任务、检测任务和分割任务。对于较复杂的网络,本文只会记录其中的核心模块以及重要的网络设计思想,并不会记录完整的网络结构。…...

20230323英语学习

Why Can You “Hear the Ocean” in Seashells? 为啥能在贝壳里“听见海的声音”? We’re told a number of stories as kids. One of the more harmless of these little lies is the one about seashells.You know the one: hold up a seashell to your ear, an…...

【粉丝投稿】上海某大厂的面试题,岗位是测开(25K*16)

简单介绍一句,大专出身,三年经验。跳了四次槽,面试了无数次,现在把自己的面试经验整理出来分享给大家,堪称必杀技! 1,一切从实际出发,对实际工作进行适当修饰 2,不会的简…...

shell简单使用介绍

脚本的基本元素声明,在解释并执行当前脚本文件中的语句之前,需要声明使用的命令解释器#一般写的解释器为 #!/bin/bash这里的#不再是注释了,而是必要的声明命令,也就是需要执行的语句注释,对代码进行解释说明分为单行注…...

RK3568平台开发系列讲解(调试篇)内核函数调用堆栈打印方法汇总

🚀返回专栏总目录 文章目录 一、dump_stack 函数二、WARN_ON(condition)函数三、BUG_ON (condition)函数四、panic (fmt...)函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对驱动调试方法进行汇总学习。 一、dump_stack 函数 dump_stack 作用:打印内核调…...

一次内存泄露排查

前因: 因为测试 长时间压测导致 接口反应越来越慢,甚至 导致服务器 崩溃 排查过程 1、top 查看是 哪个进程 占用 内存过高 2、根据 进程 id 去查找 具体是哪个 程序的问题 ps -ef| grep 41356 可以看到 具体的 容器位置 排查该进程 对象存活 状态…...

「Mac安装ps」Adobo Photoshop 2023 下载安装详情教程,支持 AI 插件的 24 版 Photoshop

前言 Adobo Photoshop 2023 已推出,由于目前AI人工智能技术火爆,而很多的 AI 插件最低也需要24版的 photoshop ,所以这里我遍搜集并整理了此新版本的 photoshop 安装使用教程,后续也将提供 AI 插件的下载安装教程 安装文件下载 …...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制&#xff0…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...