SAP RAP多选Action执行策略与最佳实践
1. 项目概述RAP Action的多选执行痛点与解决方案在SAP Fiori应用开发中RAPRestful ABAP Programming模型已经成为现代ABAP开发的标准范式。其中Action作为业务操作的核心载体其执行方式直接关系到用户体验。但在实际项目中我们经常遇到这样的场景用户需要批量选中表格中的多条数据然后执行某个业务操作。这时开发者往往会发现系统默认的多选执行行为并不符合业务需求——要么是Action被重复调用多次每条数据一次要么是所有选中数据被合并处理但缺乏精细控制。这正是Multi Select与invocationGrouping要解决的核心问题。通过这对黄金组合我们可以精确控制多选场景下Action的执行逻辑。比如将多条数据合并为一个请求处理适合批量审批场景保持每条数据独立调用但共享前置/后置处理适合批量邮件发送完全禁止多选执行适合必须单条处理的关键业务2. 核心概念解析Multi Select与invocationGrouping的协同机制2.1 Multi Select的基础实现在RAP模型中启用多选功能需要三个关键步骤// 在CDS视图的元数据注解中启用多选 UI: { selectionField: [ { position: 10 } ], multiSelect: true } entity ZMyEntity { // 字段定义 } // 在行为定义中声明支持多选的Action behavior for ZMyEntity { action (features: instance) multiProcess parameter ZProcessParam result [1] $self; }注意multiSelect: true必须与selectionField注解配合使用否则前端表格不会显示复选框列2.2 invocationGrouping的三种模式invocationGrouping参数是控制多选行为的关键它有三种取值Isolated默认值每条选中记录独立触发Action适合每条记录需要独立上下文如单独生成后续单据缺点N条记录会产生N次HTTP请求Grouped所有选中记录合并为一个请求适合批量处理无依赖关系的任务如状态批量更新特点Action参数会变成数组类型None禁止多选执行Action适合必须单条处理的关键业务如财务过账3. 实战配置从基础到高级的多选控制3.1 基础配置示例在行为定义中指定分组策略behavior definition ZMyBehavior { action (features: instance, invocationGrouping: grouped) multiApprove; action (features: instance, invocationGrouping: isolated) singleProcess; action (features: instance, invocationGrouping: none) criticalAction; }对应的行为实现类中需要处理不同模式下的参数CLASS lcl_behavior IMPLEMENTATION. METHOD multiApprove. grouped模式下parameters是内表 LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_param). 处理每条记录的审批逻辑 ENDLOOP. ENDMETHOD. ENDCLASS.3.2 高级控制技巧动态启用/禁用多选通过条件逻辑控制多选可用性METHOD get_features. LOOP AT keys ASSIGNING FIELD-SYMBOL(fs_key). IF fs_key-status APPROVED. result-%action-multiApprove if_abap_behvfc-o-disabled. ENDIF. ENDLOOP. ENDMETHOD.混合使用不同分组策略针对不同业务场景组合使用策略behavior definition ZOrderBehavior { // 批量审批使用分组模式 action (features: instance, invocationGrouping: grouped) massApprove; // 单独发货使用独立模式 action (features: instance, invocationGrouping: isolated) singleDelivery; // 财务过账禁止多选 action (features: instance, invocationGrouping: none) postAccounting; }4. 前端适配与用户体验优化4.1 Fiori Elements的适配配置在manifest.json中配置表格的多选行为SalesOrderList: { type: ListReport, options: { tableType: GridTable, selectionMode: MultiToggle, actions: { massApprove: { invocationGrouping: Grouped, batchAction: true } } } }4.2 批量操作的用户引导通过注解优化用户界面UI: { action: [ { type: #FOR_MULTI, label: Batch Approve, position: 10, grouping: #GROUPED, enabledDetermination: #DYNAMIC }] } action massApprove;5. 性能优化与最佳实践5.1 大数据量下的性能考量当处理大量数据时建议对于Grouped模式实现分块处理如每次处理100条使用%control字段控制数据传输量METHOD processBatch. DATA(lt_batch) VALUE #( FOR GROUPS OF 100 lines IN parameters GROUP BY ( group sy-index DIV 100 ) WITHOUT MEMBERS ( lines ) ). LOOP AT lt_batch ASSIGNING FIELD-SYMBOL(fs_batch). 处理每个批次 ENDLOOP. ENDMETHOD.对于Isolated模式启用后台处理提供进度反馈5.2 错误处理策略不同分组模式的错误处理差异模式错误处理特点推荐策略Isolated单条失败不影响其他记录收集错误后统一显示Grouped任一失败会导致整个请求回滚实现部分提交或补偿机制None天然避免多选错误标准单条错误处理即可实现示例METHOD massApprove. LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_param). TRY. 业务逻辑处理 CATCH cx_root INTO DATA(lx_error). 记录错误但继续处理 APPEND VALUE #( %tky fs_param-%tky %msg lx_error-get_text( ) ) TO failed. ENDTRY. ENDLOOP. ENDMETHOD.6. 常见问题排查与调试技巧6.1 典型问题速查表现象可能原因解决方案多选复选框不显示缺少multiSelect注解检查CDS视图UI注解Action在多选时不可用未设置features: instance检查行为定义中的action配置Grouped模式参数解析失败参数未定义为内表类型修改参数为TABLE OF结构性能低下未做分批处理实现分块处理逻辑错误消息显示不全未正确填充failed结构确保所有错误都返回%tky和%msg6.2 调试技巧使用cl_abap_behv_utilityget_cloud_log获取详细日志在行为实现类中设置断点时对于Isolated模式断点会触发多次每次处理一条记录对于Grouped模式断点只会触发一次所有记录一起处理检查前端请求负载Isolated模式每个请求只包含一条记录的keyGrouped模式单个请求包含所有选中记录的keys数组7. 进阶应用自定义分组逻辑对于更复杂的分组需求可以实现自定义分组处理器CLASS lcl_custom_grouping DEFINITION INHERITING FROM cl_abap_behv_grouping. PUBLIC SECTION. METHODS if_abap_behv_grouping~get_grouping REDEFINITION. ENDCLASS. METHOD if_abap_behv_grouping~get_grouping. 根据业务规则动态决定分组方式 IF iv_action MASS_PROCESS. result VALUE #( invocation if_abap_behvgc_grouping-grouped ). ELSE. result VALUE #( invocation if_abap_behvgc_grouping-isolated ). ENDIF. ENDMETHOD.在行为池中注册自定义处理器CLASS lhc_my_behavior DEFINITION INHERITING FROM cl_abap_behavior_handler. PRIVATE SECTION. METHODS get_grouping FOR GROUPING IMPORTING keys REQUEST requested_early_features FOR my_entity RESULT result. ENDCLASS. METHOD get_grouping. result NEW lcl_custom_grouping( ). ENDMETHOD.8. 实际案例采购订单批量审批8.1 业务场景分析某采购系统中需要实现选择多个待审批订单一次性批量审批通过需要记录每个订单的审批人和审批时间任一订单审批失败不影响其他订单8.2 技术实现方案CDS视图注解UI: { selectionField: [ { position: 10 } ], multiSelect: true, lineItem: [ { type: #FOR_ACTION, label: Batch Approve, position: 20, invocationGrouping: #GROUPED }] }行为定义behavior definition ZPOApproval { action (features: instance, invocationGrouping: grouped) batchApprove parameter ZApproverParam result [1] $self; }行为实现METHOD batchApprove. DATA(lv_timestamp) cl_abap_context_infoget_system_time( ). LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_po). UPDATE zpurchase_order SET status APPROVED, approved_by fs_po-approver_id, approved_at lv_timestamp WHERE po_number fs_po-po_number. IF sy-subrc 0. APPEND VALUE #( %tky fs_po-%tky %msg NEW zcx_approval_error( ) ) TO failed. ENDIF. ENDLOOP. ENDMETHOD.8.3 性能优化版本对于可能的大数据量处理METHOD batchApprove. DATA: lt_update TYPE STANDARD TABLE OF zpurchase_order. lt_update VALUE #( FOR po IN parameters ( po_number po-po_number status APPROVED approved_by po-approver_id approved_at cl_abap_context_infoget_system_time( ) ) ). MODIFY zpurchase_order FROM TABLE lt_update ACCEPTING DUPLICATE KEYS. IF sy-subrc 0. 错误处理 ENDIF. ENDMETHOD.9. 与其他Fiori特性的协同9.1 与Draft模式的配合当实体启用Draft时多选Action需要额外考虑METHOD batchApprove. 先激活所有选中草稿 READ ENTITIES OF ZMyEntity IN LOCAL MODE ENTITY my_entity ALL FIELDS WITH CORRESPONDING #( keys ) RESULT DATA(lt_active_data). 然后处理激活后的数据 ENDMETHOD.9.2 与Analytical List Page的集成在ALP中配置多选ActionanalyticalListPage: { table: { actions: { multiSelectActions: [ massApprove ] } } }10. 安全性与权限控制10.1 基于字段的权限控制结合AccessControl注解限制多选操作AccessControl.authorityCheck: #CHECK EndUserText.label: Approval Authority define role ZApprovalRole { grant select, update (status, approved_by, approved_at) on ZPurchaseOrder where ( status PENDING ); }10.2 Action级别的权限检查在行为实现中添加检查METHOD batchApprove. LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_po). AUTHORITY-CHECK OBJECT ZPO_APPROVE ID ACTVT FIELD 02 ID COMPANY FIELD fs_po-company_code. IF sy-subrc 0. APPEND VALUE #( %tky fs_po-%tky ) TO failed. APPEND VALUE #( %tky fs_po-%tky %msg NEW zcx_no_auth( ) ) TO reported. ENDIF. ENDLOOP. ENDMETHOD.11. 测试策略与自动化验证11.1 单元测试示例测试分组Action的行为METHOD test_grouped_action. 准备测试数据 DATA(lt_keys) VALUE zif_my_behaviortt_key( ( po_number 10001 ) ( po_number 10002 ) ). DATA(lt_params) VALUE zif_my_behaviortt_param( ( po_number 10001 approver_id USER1 ) ( po_number 10002 approver_id USER1 ) ). 调用测试方法 DATA(lo_cut) NEW lcl_behavior( ). lo_cut-batchapprove( EXPORTING keys lt_keys parameters lt_params ). 验证结果 cl_abap_unit_assertassert_initial( lo_cut-failed ). ENDMETHOD.11.2 E2E测试场景设计测试场景验证要点预期结果单条记录执行Grouped Action参数解析是否正确正常处理无错误多条记录执行Grouped Action是否合并为单个请求只触发一次后端处理部分记录权限不足错误隔离是否有效仅无权限记录失败大数据量批处理响应时间是否在可接受范围内处理时间随数据量线性增长12. 版本兼容性与升级策略12.1 不同SAP版本的行为差异版本Multi Select特性invocationGrouping支持度1909基础支持仅支持Isolated和None2020增强表格集成完整支持三种模式2022与ALP深度集成支持动态分组策略12.2 向后兼容的实现方式对于需要支持多版本的系统METHOD batchApprove. 版本检测 DATA(lv_version) cl_abap_behv_runtimeget_version( ). IF lv_version 2020. 降级处理模拟分组行为 LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_param). 单条处理逻辑 ENDLOOP. ELSE. 原生分组处理 ... ENDIF. ENDMETHOD.13. 移动端适配与离线场景13.1 Fiori Client的特殊处理在离线场景下Grouped Action需要在manifest.json中标记支持离线actions: { massApprove: { offline: { supported: true, grouping: grouped } } }实现离线冲突处理METHOD resolve_batchapprove. 处理离线时可能的数据冲突 LOOP AT conflicts ASSIGNING FIELD-SYMBOL(fs_conflict). CASE fs_conflict-reason. WHEN DATA_CHANGED. 数据已被修改的处理 ENDCASE. ENDLOOP. ENDMETHOD.14. 性能监控与优化建议14.1 关键性能指标监控建议监控以下指标请求处理时间Isolated模式平均单条处理时间Grouped模式不同批量大小的处理时间内存消耗大数据量Grouped处理时的内存峰值锁等待时间涉及锁操作的批处理场景14.2 性能优化检查清单[ ] 是否使用了FOR ALL ENTRIES优化数据库访问[ ] 是否对大数组处理实现了分块机制[ ] 是否避免了在循环中进行COMMIT WORK[ ] 是否使用了%control减少数据传输量[ ] 是否对长时间操作实现了后台处理15. 与其他技术栈的集成15.1 与OData服务的交互当Action需要调用外部OData服务时METHOD batchApprove. 创建批处理请求 DATA(lo_batch) cl_web_odata_client_batchcreate_batch( ). 为每条记录添加操作 LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_param). DATA(lo_request) lo_batch-add_request( iv_entity_set Approvals iv_operation POST is_data VALUE ty_approval( po_number fs_param-po_number ) ). ENDLOOP. 执行批处理 lo_batch-execute( ). ENDMETHOD.15.2 与BTP服务的对接集成BTP业务规则服务示例METHOD batchApprove. 调用规则服务 DATA(lt_decisions) zcl_brfplus_utilevaluate_in_batch( it_items VALUE #( FOR po IN parameters ( po_number po-po_number approver po-approver_id ) ) ). 处理决策结果 LOOP AT lt_decisions ASSIGNING FIELD-SYMBOL(fs_decision). IF fs_decision-approved abap_true. 更新审批状态 ENDIF. ENDLOOP. ENDMETHOD.16. 设计模式与架构思考16.1 适合多选Action的设计模式批处理模式Batch Processor适用于Grouped invocation实现统一的前置/后置处理命令模式Command适用于Isolated invocation每个Action执行封装为独立命令对象责任链模式Chain of Responsibility适用于需要多级处理的场景每个处理器决定是否处理当前记录16.2 架构决策记录示例决策点选择方案理由审批Action分组策略采用Grouped模式减少网络往返保持事务一致性错误处理方式继续处理后续记录避免单条失败导致整个批处理终止大数据量处理实现分块提交机制平衡性能与内存消耗17. 异常处理与事务控制17.1 不同模式的事务特性模式事务边界错误回滚范围Isolated每条记录独立事务仅当前记录Grouped整个Action作为一个事务所有选中记录None显式控制事务自定义范围17.2 实现部分提交的示例METHOD batchApprove. DATA: lt_success TYPE STANDARD TABLE OF zpo_key. LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_po). 开始新的事务 SET LOCALE LANGUAGE EN. TRY. 业务处理逻辑 COMMIT WORK. APPEND fs_po-%tky TO lt_success. CATCH cx_root INTO DATA(lx_error). ROLLBACK WORK. APPEND VALUE #( %tky fs_po-%tky %msg lx_error-get_text( ) ) TO failed. ENDTRY. ENDLOOP. 返回成功处理的记录 LOOP AT lt_success ASSIGNING FIELD-SYMBOL(fs_success). APPEND VALUE #( %tky fs_success ) TO result. ENDLOOP. ENDMETHOD.18. 国际化与本地化支持18.1 多语言错误消息处理METHOD batchApprove. LOOP AT parameters ASSIGNING FIELD-SYMBOL(fs_po). TRY. 业务逻辑 CATCH zcx_approval_error INTO DATA(lx_error). 根据用户语言获取错误文本 DATA(lv_lang) cl_abap_behv_runtimeget_request_language( ). DATA(lv_msg) lx_error-get_text( lv_lang ). APPEND VALUE #( %tky fs_po-%tky %msg new_message( id ZAPPROVAL_MSG number 001 severity if_abap_behv_messageseverity-error v1 fs_po-po_number ) ) TO reported. ENDTRY. ENDLOOP. ENDMETHOD.18.2 日期/时间格式处理在批处理中统一处理格式METHOD batchApprove. DATA(lv_timestamp) cl_abap_context_infoget_system_time( ). DATA(lv_date) CONV datum( lv_timestamp(8) ). 根据用户偏好格式化 DATA(lv_formatted) format_date( value lv_date format cl_abap_behv_runtimeget_date_format( ) ). ENDMETHOD.19. 扩展性与自定义开发19.1 自定义分组策略实现继承标准分组处理器CLASS lcl_custom_grouping DEFINITION INHERITING FROM cl_abap_behv_grouping. PUBLIC SECTION. METHODS if_abap_behv_grouping~get_grouping REDEFINITION. PRIVATE SECTION. METHODS should_group IMPORTING iv_action TYPE abp_behv_action_name RETURNING VALUE(rv_group) TYPE abap_bool. ENDCLASS. METHOD if_abap_behv_grouping~get_grouping. IF should_group( iv_action ). result VALUE #( invocation if_abap_behvgc_grouping-grouped ). ELSE. result VALUE #( invocation if_abap_behvgc_grouping-isolated ). ENDIF. ENDMETHOD.19.2 动态Action启用示例根据数据状态动态控制METHOD get_features. 检查是否所有选中记录都满足批处理条件 SELECT COUNT(*) FROM zpurchase_order FOR ALL ENTRIES IN keys WHERE po_number keys-po_number AND status PENDING. IF sy-subrc 0 AND sy-dbcnt 0. 全部待处理才启用批处理 result-%action-massApprove if_abap_behvfc-o-enabled. ENDIF. ENDMETHOD.20. 未来演进与技术雷达20.1 与RAP新特性的整合行为扩展Behavior Extensionsextension using interface zif_mass_operations implementation in class zcl_mass_processor;自定义实体操作action (features: instance, for: custom_entity) massProcess;流式处理支持action (streaming: enabled) processStream;20.2 性能优化方向异步批处理action (async: true) backgroundApproval;服务端分页处理METHOD processBatch. DATA(lv_chunk) 0. WHILE lv_chunk * 100 lines( parameters ). 处理每个分块 lv_chunk 1. ENDWHILE. ENDMETHOD.内存优化技术DATA lt_buffer TYPE SORTED TABLE OF zpo_data WITH UNIQUE KEY po_number WITH MEMORY OPTIMIZATION.

相关新闻

2025年AI写作工具横评:DeepSeek导出Word,谁才是真正的“格式救星”?

2025年AI写作工具横评:DeepSeek导出Word,谁才是真正的“格式救星”?

2025年,AI大模型的应用已从“尝鲜”迈向“刚需”。特别是随着DeepSeek等推理模型的普及,生成包含复杂数学推导、多层级表格的技术文档已成为常态。然而,在从“AI生成”到“本地文档”的最后一公里,无数用户却遭遇了“滑铁卢”。 明…

2026/7/30 2:04:26阅读更多 →
Qt开发中QString与容器类的核心用法与性能优化

Qt开发中QString与容器类的核心用法与性能优化

1. QString在Qt开发中的核心地位QString作为Qt框架中最基础也最常用的字符串处理类,几乎出现在每一个Qt项目的代码中。不同于标准C的std::string,QString从设计之初就充分考虑了国际化、编码转换和跨平台需求。我经历过从MFC到Qt的迁移项目,最…

2026/7/30 2:04:26阅读更多 →
Python志愿者管理系统:Django+React实现智能排班与调度

Python志愿者管理系统:Django+React实现智能排班与调度

1. 项目概述:Python社区志愿者服务系统的核心价值去年参与组织PyCon线下活动时,我深刻体会到志愿者管理的痛点:报名信息散落在多个Excel表格,排班靠微信群接龙,突发状况全靠人肉协调。这个用DjangoReact开发的志愿者管…

2026/7/30 2:04:26阅读更多 →
蓝速科技 RISC-V+ 鸿蒙双国产信创终端部署指南

蓝速科技 RISC-V+ 鸿蒙双国产信创终端部署指南

在政企数字化转型的深水区,信息安全早已不再是单纯的“防火墙”概念,而是深入到了芯片指令集与操作系统内核的底层重构。过去几年,我们在推进国产化替代时,常陷入“硬软两张皮”的困境:国产芯片跑着优化不足的通用系统…

2026/7/30 3:19:26阅读更多 →
蓝速科技台式双屏翻译机商务洽谈选型指南

蓝速科技台式双屏翻译机商务洽谈选型指南

在高端商务洽谈的现场,语言不通往往是最尴尬的“隐形墙”。想象一下,当双方团队围坐在会议桌前,气氛严肃而关键,翻译人员却需要频繁传递手持设备,或者因为环境嘈杂导致收音不清,反复确认“您刚才说什么”&a…

2026/7/30 3:19:26阅读更多 →
rust有没有go ast 的库,实现类的发现生成动态注册代码

rust有没有go ast 的库,实现类的发现生成动态注册代码

在 Rust 中要实现“发现类并生成动态注册代码”,做法与 Go 的 ast 包思路不同。Go 是在运行时解析源码,而 Rust 则利用其强大的编译时代码生成能力来实现。 这里有两种主流方式,可以分别满足“灵活发现”和“自动注册”的需求。 &#x1f6…

2026/7/30 3:19:26阅读更多 →
rust有反射吗

rust有反射吗

简单来说:Rust 在语言层面没有 Java 或 C# 那种完整、成熟的运行时反射(Reflection)机制,但它提供了一些构建块,并通过生态库实现了功能强大的替代方案。 Rust 的“反射”能力可以分为内置基础、实验性特性和社区库三…

2026/7/30 3:19:26阅读更多 →
Rust 社区有多种依赖注入

Rust 社区有多种依赖注入

Rust 社区有多种依赖注入(DI)库可供选择。不过,由于 Rust 没有 Java 或 C# 那样的运行时反射机制,它的依赖注入库在实现思路上主要分成两条不同的路线。我把几个有代表性的方案整理成了下面这个表格,方便你对比和选择&…

2026/7/30 3:19:26阅读更多 →
Monorepo 的架构选型:Turborepo、Nx、pnpm Workspace 的全维度对比

Monorepo 的架构选型:Turborepo、Nx、pnpm Workspace 的全维度对比

Monorepo 的架构选型:Turborepo、Nx、pnpm Workspace 的全维度对比 Monorepo 选型决策的困难在于:每个工具都能完成基础任务,但它们的核心区别体现在规模增长后才能暴露。本文从任务编排、缓存策略、依赖管理和扩展性四个维度进行对比。 一、…

2026/7/30 3:17:26阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/29 4:31:51阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →