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

虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property

虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property

在这里插入图片描述

code review!

文章目录

  • 虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property
    • 1.Qt 中的 Meta(元对象系统)
      • 1.1 主要功能
      • 1.2 如何实现
        • 1.2.1 例子
        • 1.2.2 访问 meta 信息
    • 2.UE5 中的 Meta(元数据)
      • 2.1 主要功能
      • 2.2 使用方式
        • 2.2.1 常用 meta 参数
        • 2.2.2 作用
      • 2.3 总结对比
    • 3.Meta 是否是一个 Map?
      • 3.1 Qt 的 Meta(元对象系统)是不是 Map?
        • 3.1.1 详细说明
        • 3.1.2 可以这样理解
        • 3.1.3 举个例子
      • 3.2 UE5 的 Meta(元数据参数)是不是 Map?
        • 3.2.1 详细说明
        • 3.2.2 举个例子
        • 3.2.3 总结
      • 3.3 结论对比
        • 3.3.1 总结一句话
    • 4.Qt 和 UE5 中的 Property
      • 4.1 Qt 中的 Property
        • 4.1.1 作用
        • 4.1.2 声明方式
          • 4.1.2.1 解释
        • 4.1.3 使用场景
        • 4.1.4 访问方法
      • 4.2 UE5 中的 Property
        • 4.2.1 作用
        • 4.2.2 声明方式
          • 4.2.2.1 解释
        • 4.2.3 使用场景
        • 4.2.4 动态访问
      • 4.3 对比总结
        • 4.3.1 小结

1.Qt 中的 Meta(元对象系统)

Qt 是一个 C++ 框架,广泛用于 GUI 应用开发。它的 meta 主要指的是 元对象系统(Meta-Object System)。Qt 的元对象系统让 C++ 拥有了类似于反射和运行时类型信息(RTTI)的能力,这是原生 C++ 缺少的。

1.1 主要功能

  • 信号与槽(Signals & Slots)
  • 运行时类型识别(RTTI)
  • 属性系统(Property System)
  • 动态语言特性(反射)

1.2 如何实现

Qt 使用 MOC(Meta-Object Compiler),对含有 Q_OBJECT 宏的类做预处理,生成 meta 信息。

1.2.1 例子
class MyObject : public QObject {Q_OBJECT
public:MyObject(QObject *parent = nullptr);signals:void mySignal(int value);public slots:void mySlot(int value);
};
  • Q_OBJECT 宏启用元对象功能
  • MOC 生成的代码包含元数据,比如信号和槽的注册信息
1.2.2 访问 meta 信息
MyObject obj;
const QMetaObject *metaObj = obj.metaObject();
qDebug() << metaObj->className();

2.UE5 中的 Meta(元数据)

Unreal Engine 5 是一款强大的游戏引擎。它的 meta 主要出现在 UCLASS、UPROPERTY、UFUNCTION 等宏中的 元数据参数。这些 meta 信息用于编辑器、序列化、蓝图集成等。

2.1 主要功能

  • 控制属性在编辑器中的显示和行为
  • 设置序列化、复制规则
  • 蓝图可见性与调用权限

2.2 使用方式

用在宏参数内,例如:

UCLASS()
class AMyActor : public AActor
{GENERATED_BODY()public:// 属性元数据UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Stats", meta=(ClampMin="0.0", ClampMax="100.0"))float Health;// 函数元数据UFUNCTION(BlueprintCallable, meta=(DisplayName="Do Something"))void DoSomething();
};
2.2.1 常用 meta 参数
  • ClampMin / ClampMax:编辑器里限制数值范围
  • DisplayName:蓝图/编辑器中显示的名字
  • ToolTip:鼠标悬停时的帮助提示
  • BlueprintReadOnlyBlueprintReadWrite:蓝图访问控制
2.2.2 作用
  • 让设计师和程序员协同工作更高效
  • 提高编辑器的可用性和自动化程度

2.3 总结对比

Qt meta(元对象系统)UE5 meta(元数据参数)
目的运行时类型、信号槽、反射编辑器、序列化、蓝图交互等
形式Q_OBJECT 宏 + MOC 生成的 meta 信息meta=(...),附加在 UCLASS/UPROPERTY 上
实现C++ 预处理器和代码生成宏展开+编译器+UE反射系统
用途信号与槽、属性、QML、动态调用编辑器属性、蓝图、序列化、显示、限制等

3.Meta 是否是一个 Map?

3.1 Qt 的 Meta(元对象系统)是不是 Map?

不是严格意义上的 Map。

3.1.1 详细说明

Qt 的元对象系统(meta-object system)并不直接用 QMapstd::map 来存储元信息。Qt 通过 QMetaObject 类,把类名、属性列表、信号与槽等信息组织成一种结构化的数据(通常是静态数组和结构体)。

  • 这些信息在编译阶段由 MOC(Meta-Object Compiler) 生成,保存在 QMetaObject 及相关数据结构中。
  • Qt 的元信息是结构化的,并不是一个单纯的 Key-Value 映射。
3.1.2 可以这样理解
  • 虽然可以通过名字查找属性(有点像 Map),但底层其实是用一种高效的数据结构(如数组+索引)来做查找。
  • 例如 QMetaObject::property(int index)QMetaObject::indexOfProperty(const char *name)
3.1.3 举个例子
const QMetaObject* metaObj = obj.metaObject();
int propIndex = metaObj->indexOfProperty("myProperty");
QMetaProperty prop = metaObj->property(propIndex);
  • 这里虽然可以通过名字查找,但底层不是标准的 Map,而是特定的数据结构。

3.2 UE5 的 Meta(元数据参数)是不是 Map?

它的表现形式接近 Map,但实现上是元数据表。

3.2.1 详细说明

在 Unreal Engine 5 中,meta=(...) 里的内容很像 Key-Value Map:

UPROPERTY(meta = (ClampMin = "0.0", ClampMax = "100.0"))
float Health;
  • 这里的 meta 参数在语法上就是一堆键值对(Key-Value)。
  • 底层实现时,UE5 会把这些参数解析成类似于 TMap<FName, FString> 的结构(即 Map),保存到 FPropertyUFunction 等对象的元数据表里。
3.2.2 举个例子
  • 在运行时、编辑器里,可以通过 API 访问这些元数据:
FProperty* Property = ...;
FString ClampMinValue = Property->GetMetaData(TEXT("ClampMin"));
  • GetMetaData 方法就是用 Key 查 Value,非常像 Map。
3.2.3 总结
  • UE5 的 meta 更接近 Map 的概念,实际上底层是用 Map 或类似的结构实现的。

3.3 结论对比

Qt metaUE5 meta
表现结构化静态元对象,非 MapKey-Value 对,接近 Map
实现静态数组/结构体,索引查找TMap/FName,确实是 Map 或类似结构
用法通过索引/名字访问通过 Key 查 Value
3.3.1 总结一句话
  • Qt 的 meta 不是 Map,而是一套结构化的元数据系统。
  • UE5 的 meta 是一组 Key-Value 对,本质上就是 Map 或非常接近 Map。

4.Qt 和 UE5 中的 Property

4.1 Qt 中的 Property

4.1.1 作用

Qt 的 属性系统 是元对象系统(meta-object system)的一部分,主要用于:

  • 反射(运行时获取/设置属性)
  • 与 QML 绑定
  • 属性动画
  • 与 Designer 等工具交互
4.1.2 声明方式

属性通过 Q_PROPERTY 宏声明,通常在有 Q_OBJECT 的类中:

class MyObject : public QObject {Q_OBJECTQ_PROPERTY(int age READ age WRITE setAge NOTIFY ageChanged)
public:int age() const { return m_age; }void setAge(int a) { if (m_age != a) { m_age = a; emit ageChanged(); } }
signals:void ageChanged();
private:int m_age;
};
4.1.2.1 解释
  • Q_PROPERTY(type name READ getter WRITE setter NOTIFY signal)
  • 让属性能被 Qt 的元对象系统识别和操作
4.1.3 使用场景
  • 运行时反射
  • QML 绑定(如在 QML 脚本中直接使用 C++ 对象的属性)
  • 属性动画、序列化、编辑器支持
4.1.4 访问方法

可以通过 QMetaObject 动态读取/设置属性:

MyObject obj;
obj.setProperty("age", 30);
int age = obj.property("age").toInt();

这些方法实际上是通过 QMetaProperty 查找属性信息。

4.2 UE5 中的 Property

4.2.1 作用

在 Unreal Engine 5 中,property 通常指 UProperty 系统(现在叫 FProperty),用于:

  • 反射(运行时获取/设置属性)
  • 编辑器可见性和编辑
  • 蓝图集成
  • 网络复制
  • 序列化
4.2.2 声明方式

通过 UPROPERTY 宏声明:

UCLASS()
class AMyActor : public AActor
{GENERATED_BODY()
public:UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Stats")int32 Health;
};
4.2.2.1 解释
  • UPROPERTY 后面加各种修饰参数,决定属性在编辑器、蓝图、网络等方面的行为
4.2.3 使用场景
  • 让属性在编辑器里可见和可编辑
  • 蓝图访问和修改
  • 网络同步
  • 序列化和保存
4.2.4 动态访问

可以通过反射 API 访问属性:

UProperty* Prop = FindField<UProperty>(AMyActor::StaticClass(), TEXT("Health"));
void* ValuePtr = Prop->ContainerPtrToValuePtr<void>(ActorInstance);
int32 HealthValue = CastField<UIntProperty>(Prop)->GetPropertyValue(ValuePtr);

属性的元数据(如 EditAnywhereCategory)也是通过反射系统存储和查询的。

4.3 对比总结

Qt propertyUE5 property (UPROPERTY)
作用反射、QML、动画、工具反射、编辑器、蓝图、网络、序列化
声明方式Q_PROPERTYUPROPERTY
关联系统元对象系统(MOC)反射系统(UHT/UE4元数据表)
运行时动态访问支持(property/setProperty)支持(FindField, Get/Set API)
编辑器交互支持(Qt Designer/QML)支持(UE编辑器/蓝图)
元数据(meta)附加在 Q_PROPERTY 上附加在 UPROPERTY 上
网络复制不直接支持支持(Replicated等修饰符)
4.3.1 小结
  • Qtproperty 更偏向于 GUI、QML 绑定和动画等场景。
  • UE5property 是游戏引擎数据驱动、编辑器交互、蓝图、网络同步等核心的基础设施。
  • 两者都是“反射型属性”,都可以运行时通过名字动态访问,但用法和场景大不相同。

相关文章:

虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property

虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property code review! 文章目录 虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property1.Qt 中的 Meta&#xff08;元对象系统&#xff09;1.1 主要功能1.2 如何实现1.2.1 例子1.2.2 访问 meta 信息 2.UE5 中的 Meta&#xff…...

技术中台-核心技术介绍(微服务、云原生、DevOps等)

在企业数字化中台建设中&#xff0c;技术中台是支撑业务中台、数据中台及其他上层应用的底层技术基础设施&#xff0c;其核心目标是提供标准化、可复用的技术能力&#xff0c;降低业务开发门槛&#xff0c;提升系统稳定性与扩展性。技术中台的技术栈需覆盖从开发、运维到治理的…...

attention_weights = torch.ones_like(prompt_embedding[:, :, 0]):切片操作获取第二维度,第三维度

attention_weights = torch.ones_like(prompt_embedding[:, :, 0]):切片操作获取第1 维度,第二维度 attention_weights = torch.ones_like(prompt_embedding[:, :, 0]) 这行代码的作用是创建一个与 prompt_embedding[:, :, 0] 形状相同且所有元素都为 1 的张量,它用于初始化…...

2025年中国DevOps工具选型指南:主流平台能力横向对比

在数字化转型纵深发展的2025年&#xff0c;中国企业的DevOps工具选型呈现多元化态势。本文从技术架构、合规适配、生态整合三个维度&#xff0c;对Gitee、阿里云效&#xff08;云效DevOps&#xff09;、GitLab CE&#xff08;中国版&#xff09;三大主流平台进行客观对比分析&a…...

国产ETL数据集成软件和Informatica 相比如何

数据集成领域Informatica名号可谓无人不知无人不晓。作为国际知名的ETL工具&#xff0c;凭借其强大的功能和多年的市场积累&#xff0c;赢得了众多企业的信赖。然而&#xff0c;随着国内企业数字化转型的加速以及对数据安全、成本控制和本地化服务的需求日益增长&#xff0c;国…...

FFMPEG 与 mp4

1. FFmpeg 中的 start_time 与 time_base start_time 流的起始时间戳&#xff08;单位&#xff1a;time_base&#xff09;&#xff0c;表示第一帧的呈现时间&#xff08;Presentation Time&#xff09;。通常用于同步多个流&#xff08;如音频和视频&#xff09;。 time_base …...

在RAG中 如何提高向量搜索的准确性?

在RAG(Retrieval-Augmented Generation)系统中,提高向量搜索的准确性需要从数据预处理、模型选择、算法优化和后处理等多个维度进行综合改进。以下是具体策略的详细分析: 一、优化数据质量与预处理 1. 数据清洗与结构化 去噪与规范化:去除停用词、拼写纠错、统一大小写和…...

Python调用SQLite及pandas相关API详解

前言 SQLite是一个轻量级的嵌入式关系数据库&#xff0c;它不需要独立的服务器进程&#xff0c;将数据存储在单一的磁盘文件中。Python内置了sqlite3模块&#xff0c;使得我们可以非常方便地操作SQLite数据库。同时&#xff0c;pandas作为Python数据分析的重要工具&#xff0c…...

【Java学习笔记】finalize方法

finalize 方法 说明&#xff1a;实际开发中很少或者几乎不会重写finalize方法&#xff0c;更多的是应对面试考点 说明 &#xff08;1&#xff09;当对象被回收时&#xff0c;系统会自动调用该对象的 finalize 方法。子类可以重写该方法&#xff0c;做一些额外的资源释放操作&…...

MySQL之基础索引

目录 引言 1、创建索引 2、索引的原理 2、索引的类型 3、索引的使用 1.添加索引 2.删除索引 3.删除主键索引 4.修改索引 5.查询索引 引言 当一个数据库里面的数据特别多&#xff0c;比如800万&#xff0c;光是创建插入数据就要十几分钟&#xff0c;我们查询一条信息也…...

MCU程序加密保护(二)ID 验证法 加密与解密

STM32 微控制器内部具有一个 96 位全球唯一的 CPU ID&#xff0c;不可更改。开发者可利用此 ID 实现芯片绑定和程序加密&#xff0c;增强软件安全性。 ID 验证法就是利用这个 UID&#xff0c;对每颗芯片的身份进行识别和绑定&#xff0c;从而防止程序被复制。 实现方式&#xf…...

SparkSQL的基本使用

SparkSQL 是 Apache Spark 的一个模块&#xff0c;用于处理结构化数据。它提供了一个高性能、分布式的 SQL 查询引擎&#xff0c;可以轻松处理各种数据源&#xff0c;包括结构化数据、半结构化数据和非结构化数据12。 SparkSQL 的特点 易整合&#xff1a;SparkSQL 无缝整合了…...

QListWedget控件使用指南

QListWedget公共函数 函数签名功能描述QListWidget(QWidget *parent nullptr)构造函数&#xff0c;创建一个QListWidget对象&#xff0c;可指定父部件&#xff08;默认为nullptr&#xff09;。virtual ~QListWidget()虚析构函数&#xff0c;释放QListWidget对象及其资源。voi…...

primitive创建图像物体

本节我们学习使用entity来创建物体 我们以矩形为例,在输入矩形的四个点后运行程序 //使用entity创建矩形var rectangle viewer.entities.add({rectangle: {coordinates:Cesium.Rectangle.fromDegrees(//西边的经度90,//南边维度20,//东边经度110,//北边维度30 ),material:Ces…...

MySQL 服务器配置和管理(上)

MySQL 服务器简介 通常所说的 MySQL 服务器指的是mysqld(daemon 守护进程)程序&#xff0c;当运⾏mysqld后对外提供MySQL 服务&#xff0c;这个专题的内容涵盖了以下关于MySQL 服务器以及相关配置的内容&#xff0c;包括&#xff1a; • 服务器⽀持的启动选项。可以在命令⾏和…...

跨区域智能电网负荷预测:基于 PaddleFL 的创新探索

跨区域智能电网负荷预测:基于 PaddleFL 的创新探索 摘要: 本文聚焦跨区域智能电网负荷预测,提出基于 PaddleFL 框架的联邦学习方法,整合多地区智能电网数据,实现数据隐私保护下的高精度预测,为电网调度优化提供依据,推动智能电网发展。 一、引言 在当今社会,电力作为经…...

Java 重试机制详解

文章目录 1. 重试机制基础1.1 什么是重试机制1.2 重试机制的关键要素1.3 适合重试的场景2. 基础重试实现2.1 简单循环重试2.2 带延迟的重试2.3 指数退避策略2.4 添加随机抖动2.5 使用递归实现重试2.6 可重试异常过滤3. 常用重试库介绍3.1 Spring Retry3.1.1 依赖配置3.1.2 编程…...

Spark缓存---cache方法

在Spark 中&#xff0c;cache() 是用于优化计算性能的核心方法之一&#xff0c;但它有许多细节需要深入理解。以下是关于 cache() 的详细技术解析&#xff1a; 1. cache() 的本质 简化的 persist()&#xff1a;cache() 是 persist(StorageLevel.MEMORY_ONLY) 的快捷方式&#…...

一分钟了解大语言模型(LLMs)

一分钟了解大语言模型&#xff08;LLMs&#xff09; A Minute to Know about Large Language Models (LLMs) By JacksonML 自从ChatGPT上线发布以来&#xff0c;在短短的两年多时间里&#xff0c;全球ChatBot&#xff08;聊天机器人&#xff09;发展异常迅猛&#xff0c;更为…...

当数控编程“联姻”AI:制造工厂的“智能大脑”如何炼成?

随着DeepSeek乃至AI人工智能技术在企业中得到了广泛的关注和使用&#xff0c;多数企业开始了AI探索之旅&#xff0c;迅易科技也不例外&#xff0c;且在不断地实践中强化了AI智能应用创新的强大能力。许多制造企业面临着工艺知识传承困难、编程效率低下等诸多挑战&#xff0c; 今…...

鸿蒙OSUniApp 实现的二维码扫描与生成组件#三方框架 #Uniapp

UniApp 实现的二维码扫描与生成组件 前言 最近在做一个电商小程序时&#xff0c;遇到了需要扫描和生成二维码的需求。在移动应用开发中&#xff0c;二维码功能已经成为标配&#xff0c;特别是在电商、社交和支付等场景下。UniApp作为一个跨平台开发框架&#xff0c;为我们提供…...

【Python 内置函数】

Python 内置函数是语言核心功能的直接体现&#xff0c;无需导入即可使用。以下是精选的 10 大类、50 核心内置函数详解&#xff0c;涵盖日常开发高频场景&#xff1a; 一、数据类型转换 函数示例说明int()int("123") → 123字符串/浮点数转整数float()float("3…...

鸿蒙OSUniApp开发支持多语言的国际化组件#三方框架 #Uniapp

使用UniApp开发支持多语言的国际化组件 在全球化的今天&#xff0c;一个优秀的应用往往需要支持多种语言以满足不同地区用户的需求。本文将详细讲解如何在UniApp框架中实现一套完整的国际化解决方案&#xff0c;从而轻松实现多语言切换功能。 前言 去年接手了一个面向国际市场…...

MySQL之基础事务

目录 引言&#xff1a; 什么是事务&#xff1f; 事务和锁 mysql数据库控制台事务的几个重要操作指令&#xff08;transaction.sql&#xff09; 1、事物操作示意图&#xff1a; 2.事务的隔离级别 四种隔离级别&#xff1a; 总结一下隔离指令 1. 查看当前隔离级别​​ …...

OpenHarmony系统HDF驱动开发介绍(补充)

一、HDF驱动简介 HDF&#xff08;Hardware Driver Foundation&#xff09;驱动框架&#xff0c;为驱动开发者提供驱动框架能力&#xff0c;包括驱动加载、驱动服务管理、驱动消息机制和配置管理。 简单来说&#xff1a;HDF框架的驱动和Linux的驱动比较相似都是由配置文件和驱动…...

深度学习中的查全率与查准率:如何实现有效权衡

&#x1f4cc; 友情提示&#xff1a; 本文内容由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;创作平台的gpt-4-turbo模型辅助生成&#xff0c;旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证&#xff0c;建议读者通过官方文档或实践进一步确认…...

文件名是 ‪E:\20250512_191204.mp4, EV软件录屏,未保存直接关机损坏, 如何修复?

去github上下载untrunc 工具就能修复 https://github.com/anthwlock/untrunc/releases 如果访问不了 本机的 hosts文件设置 140.82.112.3 github.com 199.232.69.194 github.global.ssl.fastly.net 就能访问了 实在不行&#xff0c;从这里下载&#xff0c;传上去了 https://do…...

界面控件DevExpress WinForms v24.2 - 数据处理功能增强

DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…...

Web UI测试效率低?来试Parasoft Selenic的智能修复与分析!

如果你正在使用Selenium进行Web UI测试&#xff0c;但被测试维护的繁琐、测试不稳定以及测试执行缓慢等问题困扰&#xff0c;不妨试试Parasoft Selenic&#xff01; Parasoft Selenic能够通过智能修复与分析功能&#xff0c;帮你自动检测并修复测试中的不稳定因素&#xff0c;…...

计算机视觉最不卷的方向:三维重建学习路线梳理

提到计算机视觉&#xff08;CV&#xff09;&#xff0c;大多数人脑海中会立马浮现出一个字&#xff1a;“卷”。卷到什么程度呢&#xff1f;2022年秋招CV工程师岗位数下降了16%&#xff0c;但求职人数增加了23%&#xff0c;求职人数与招聘岗位的比例达到了恐怖的15:1&#xff0…...

国产 ETL 数据集成厂商推荐—谷云科技 RestCloud

数字化转型加速推进的商业环境中&#xff0c;数据已成为企业最为关键的资产之一。然而&#xff0c;随着企业信息化的建设不断深入&#xff0c;各个业务系统之间数据分散、格式不一、难以互通等问题日益凸显&#xff0c;严重制约了企业对数据价值的深度挖掘与高效利用。在此背景…...

vscode extention踩坑记

# npx vsce package --allow-missing-repository --no-dependencies #耗时且不稳定 npx vsce package --allow-missing-repository #用这行 code --install-extension $vsixFileName --force我问ai&#xff1a;为什么我的.vsix文件大了那么多 ai答&#xff1a;因为你没有用 --n…...

AI时代的弯道超车之第十二章:英语和编程重要性?

在这个AI重塑世界的时代,你还在原地观望吗?是时候弯道超车,抢占先机了! 李尚龙倾力打造——《AI时代的弯道超车:用人工智能逆袭人生》专栏,带你系统掌握AI知识,从入门到实战,全方位提升认知与竞争力! 内容亮点: AI基础 + 核心技术讲解 职场赋能 + 创业路径揭秘 打破…...

关于数据湖和数据仓的一些概念

一、前言 随着各行业数字化发展的深化,数据资产和数据价值已越来越被深入企业重要发展的战略重心,海量数据已成为多数企业生产实际面临的重要问题,无论存储容量还是成本,可靠性都成为考验企业数据治理的考验。本文来看下海量数据存储的数据湖和数据仓,数据仓库和数据湖,…...

hbase shell的常用命令

一、hbase shell的基础命令 # 客户端登录 [rootCloud-Hadoop-NN-02 hbase]$ ./bin/hbase shell# 查看所有表 hbase> list### 创建数据表student&#xff0c;包含Sname、Ssex、Sage、Sdept、course列族/列 ### 说明&#xff1a;列族不指定列名时&#xff0c;列族可以直接成为…...

高并发内存池(四):Page Cache结构设计

目录 一&#xff0c;项目整体框架回顾 Thread Cache结构 Central Cache结构 二&#xff0c;Page Cache大致框架 三&#xff0c;Page Cache申请内存实现 Central Cache向Page Cache申请内存接口 从Page Cache中获取span接口 Page Cache加锁问题 申请内存完整过程 源码&a…...

易学探索助手-项目记录(九)

本文介绍本地大模型推理数据集构成 &#xff08;一&#xff09;古籍数据获取 以44种竖向从右至左排列的繁体古文为研究对象&#xff0c;通过OCR识别、XML结构化处理&#xff0c;最终生成符合大模型训练要求的数据集。 1.技术路线设计 图像处理层&#xff1a;PaddleOCR识别竖…...

Idea 设置编码UTF-8 Idea中 .properties 配置文件中文乱码

Idea 设置编码UTF-8 Idea中 .properties 配置文件中文乱码 一、设置编码 1、步骤&#xff1a; File -> Setting -> Editor -> File encodings --> 设置编码二、配置文件中文乱码 1、步骤&#xff1a; File -> Setting -> Editor -> File encodings ->…...

Redis缓存穿透、雪崩、击穿的解决方案?

Redis 缓存问题解决方案及Java实现 一、缓存穿透解决方案 &#xff08;缓存穿透指查询不存在数据&#xff0c;绕过缓存直接访问数据库&#xff09; 1. 布隆过滤器 空值缓存 注意点&#xff1a; 1.布隆过滤器是需要预热数据的&#xff0c;就是需要输入当前数据库已经存在的…...

第29节:现代CNN架构-Inception系列模型

引言 Inception系列模型是卷积神经网络(CNN)发展历程中的重要里程碑,由Google研究人员提出并不断演进。这一系列模型通过创新的架构设计,在保持计算效率的同时显著提升了图像识别任务的性能。从最初的Inception v1到最新的Inception-ResNet,每一代Inception模型都引入了突破…...

初识C++:类和对象(上)

概述&#xff1a;本篇博客主要讲解类和对象的学习。 目录 1. 类的定义 1.1 类定义格式 1.2 访问限定符 1.3 类域 2.实例化 2.1 实例化概念 2.2 this指针 3. 小结 1. 类的定义 1.1 类定义格式 class为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;{} 中为类的…...

腾讯 IMA 工作台升级:新增知识库广场与 @提问功能

目录 一、引言 二、知识库广场功能 2.1 功能架构解析 2.2 技术实现突破 三、知识库提问功能 3.1 交互模式革新 3.2 技术底层逻辑 四、实战价值 4.1 知识管理方面 4.2 工作效率提升方面 4.3 团队协作方面 4.4 知识变现方面 五、未来展望 5.1 技术演进方向 5.2 商业…...

[目标检测] YOLO系列算法讲解

前言 目标检测就是做到给模型输入一张图片或者视频&#xff0c;模型可以迅速判断出视频和图片里面感兴趣的目标所有的位置和它 的类别&#xff0c;而当前最热门的目标检测的模型也就是YOLO系列了。 YOLO系列的模型的提出&#xff0c;是为了解决当时目标检测的模型帧率太低而提…...

Python 之 selenium 打开浏览器指定端口进行接续操作

一般使用 selenium 进行数据爬取时&#xff0c;常用处理流程是让 selenium 从打开浏览器开始&#xff0c;完成全流程的所有操作。但是有时候&#xff0c;我们希望用户先自己打开浏览器进入指定网页&#xff0c;完成登录认证等一系列操作之后&#xff08;比如用户、密码、短信验…...

GPUGeek携手ComfyUI :低成本文生图的高效解决方案

一、文生图领域的困境与ComfyUI的优势 在当今数字化创意表达的时代&#xff0c;文生图技术日益受到关注。像豆包这类以语言交互为主的大模型&#xff0c;虽然在文本处理上表现出色&#xff0c;但在文生图方面&#xff0c;其生成效果难以达到专业图像创作的要求。而Midjourney&…...

OpenCV CUDA 模块中用于在 GPU 上计算两个数组对应元素差值的绝对值函数absdiff(

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 void cv::cuda::absdiff 是 OpenCV CUDA 模块中的一个函数&#xff0c;用于在 GPU 上计算两个数组对应元素差值的绝对值。 该函数会逐元素计算两…...

互联网大厂Java面试题:深入解析SpringCloud微服务架构中的服务注册与发现机制

互联网大厂Java面试题&#xff1a;深入解析SpringCloud微服务架构中的服务注册与发现机制 面试题 问题&#xff1a; 在SpringCloud微服务架构中&#xff0c;服务注册与发现是核心功能之一。请详细说明Nacos作为服务注册中心的实现原理&#xff0c;并对比其与Eureka的异同点。…...

东芝新四款产品“TB67Z830SFTG、TB67Z830HFTG、TB67Z850SFTG、TB67Z850HFTG系列三相栅极驱动器ic三相栅极驱动器IC

支持用于电动工具、吸尘器、工业机器人等的三相无刷DC电机 东芝电子设备与存储公司(简称“东芝”)推出了TB67Z83xxFTG系列三相栅极驱动器ic的四个产品和TB67Z85xxFTG系列三相栅极驱动器IC的四个产品&#xff0c;用于消费和工业设备的三相无刷DC电机。通过将新产品与作为电机控制…...

react+html-docx-js将页面导出为docx

1.主要使用&#xff1a;html-docx-js进行前端导出 2.只兼容到word&#xff0c;wps兼容不太好 3.处理分页换行 4.处理页眉 index.tsx import { saveAs } from file-saver; import htmlToDocxGenerate from ./HtmlToDocx;const handleExportByHtml async () > {const expor…...

Linux基础 -- SSH 流式烧录与压缩传输笔记

Linux SSH 流式烧录与压缩传输指南 一、背景介绍 在嵌入式开发和维护中&#xff0c;常常需要通过 SSH 从 PC 向设备端传输大文件&#xff08;如系统镜像、固件&#xff09;并将其直接烧录到指定磁盘&#xff08;如 /dev/mmcblk2&#xff09;。然而&#xff0c;设备端存储空间…...