为什么你的AI模型在鸿蒙上跑不快?Java层优化的4个致命盲区

第一章:Java鸿蒙AI服务开发教程

在鸿蒙生态中,Java语言可用于构建高效、跨设备的AI服务应用。通过集成华为提供的HiAI引擎,开发者能够快速实现图像识别、自然语言处理和智能推荐等AI功能。本章将介绍如何基于Java在鸿蒙系统上开发基础AI服务模块。

环境准备与依赖配置

开发前需确保已安装DevEco Studio,并创建支持Java语言的鸿蒙项目。在build.gradle文件中添加HiAI框架依赖:
// 在模块级build.gradle中添加
dependencies {
    implementation 'com.huawei.hms:ai-vision-image:2.0.5' // 图像识别SDK
    implementation 'com.huawei.hms:ai-nlu:1.1.2'          // 自然语言理解
}
同步项目后即可调用相关API。

调用图像识别服务

使用HiAI进行图像分类的基本流程如下:
  1. 获取图像数据并转换为Bitmap对象
  2. 构建ImageInput实例
  3. 调用VisionImageClassificationAnalyzer执行分析
示例代码:

// 创建分析器
VisionImageClassificationAnalyzer analyzer = new VisionImageClassificationAnalyzer();
analyzer.analyzeImage(visionImage, (resultList) -> {
    for (ClassificationResult result : resultList) {
        String label = result.getName();     // 分类标签
        float confidence = result.getConfidence(); // 置信度
        // 处理识别结果
    }
});

AI服务性能优化建议

  • 避免在主线程执行AI推理,使用异步任务或线程池
  • 对频繁调用的服务启用模型缓存
  • 根据设备能力动态调整模型精度与响应速度
功能推荐SDK适用场景
图像分类ai-vision-image相册识别、物体检测
文本理解ai-nlu聊天机器人、指令解析

第二章:鸿蒙系统下AI模型性能瓶颈分析

2.1 Java层与Native层交互机制解析

在Android系统中,Java层与Native层的交互主要依赖JNI(Java Native Interface)实现跨语言调用。通过JNI,Java方法可调用C/C++编写的本地函数,反之亦然。
注册本地方法
静态注册需遵循特定命名规范:
JNIEXPORT void JNICALL Java_com_example_MainActivity_nativeInit(JNIEnv *env, jobject instance) {
    // 实现具体逻辑
    LOGD("Native method called");
}
其中,JNIEnv* 提供JNI接口指针,jobject 指向调用该方法的Java对象实例。
数据类型映射
Java与C/C++基础类型存在对应关系:
Java类型Native类型
intjint
booleanjboolean
Stringjstring
动态注册通过JNINativeMethod结构体显式绑定方法地址,提升调用效率并增强安全性。

2.2 内存管理不当导致的GC频繁问题

内存管理不当是引发垃圾回收(GC)频繁执行的主要原因之一。当应用频繁创建短生命周期对象时,年轻代空间迅速填满,触发Minor GC,严重时导致Stop-The-World。
常见诱因
  • 大量临时对象在循环中创建
  • 缓存未设上限,导致老年代堆积
  • 大对象直接进入老年代,加剧Full GC频率
代码示例与优化

// 低效写法:循环内创建对象
for (int i = 0; i < 10000; i++) {
    String str = new String("temp" + i); // 每次新建对象
    process(str);
}
上述代码在堆中频繁分配字符串对象,加剧GC压力。应改用StringBuilder或对象池复用实例。
JVM参数调优建议
参数作用
-Xmn增大年轻代空间,减少Minor GC频率
-XX:MaxGCPauseMillis设置GC最大停顿时间目标

2.3 多线程调度在AI推理中的隐性开销

在高并发AI推理场景中,多线程调度虽能提升吞吐量,但引入了不可忽视的隐性开销。线程创建、上下文切换和资源争用会消耗大量CPU周期,尤其在轻量级推理任务中,开销占比显著上升。
上下文切换成本
频繁的线程切换导致缓存失效和TLB刷新,性能损耗加剧。实测显示,每毫秒数千次的调度可能导致10%以上的有效计算时间浪费。
数据同步机制
共享内存模型下需依赖锁机制保障一致性,如下所示的互斥锁使用:

std::mutex mtx;
void infer_thread(Model& model, const Data& input) {
    std::lock_guard<std::mutex> lock(mtx); // 阻塞等待
    model.run(input);
}
上述代码中,lock_guard在多线程竞争时引发等待,形成串行瓶颈。高并发下,锁争用时间可能超过推理本身耗时。
  • 线程数量超过物理核心时,调度开销呈非线性增长
  • NUMA架构下跨节点内存访问进一步加剧延迟

2.4 类加载机制对模型初始化的影响

类加载机制在模型初始化过程中起着关键作用,它决定了类何时被加载、链接和初始化,直接影响模型参数的加载顺序与内存分配。
类加载阶段与模型初始化时机
Java类加载分为加载、验证、准备、解析和初始化五个阶段。模型初始化通常发生在类的静态代码块或静态变量赋值时。

public class Model {
    private static final NeuralNetwork INSTANCE = new NeuralNetwork();
    
    static {
        System.out.println("模型开始初始化");
    }
}
上述代码中,NeuralNetwork 实例的创建依赖于类加载时的初始化阶段。只有当类被主动引用(如访问静态字段)时,JVM才会触发初始化,从而实例化模型。
类加载器隔离对模型共享的影响
不同类加载器可能加载同一类的不同实例,导致模型单例失效。使用双亲委派模型可避免此类问题,确保核心模型类由系统类加载器统一管理。

2.5 JNI调用效率低下的典型场景剖析

在跨语言调用中,JNI虽然提供了Java与本地代码的桥梁,但在特定场景下性能损耗显著。
频繁的JNI函数调用
每次进入native方法都会产生上下文切换开销。若在循环中频繁调用,性能急剧下降:
JNIEXPORT void JNICALL
Java_MyClass_nativeProcess(JNIEnv *env, jobject obj, jint value) {
    // 每次调用都涉及栈帧建立、参数检查
}
建议合并批量操作,减少调用次数。
数据复制与类型转换
Java对象(如byte[])传递至C/C++时需复制或获取指针:
  • GetByteArrayElements可能导致内存复制
  • 字符串转换(GetStringUTFChars)带来编码开销
应优先使用DirectByteBuffer避免中间拷贝。
异常检查与同步开销
每个JNI调用后需检查异常状态,且涉及线程同步时会阻塞JVM执行路径,进一步拉长响应延迟。

第三章:Java层关键优化策略实践

3.1 对象池技术减少内存抖动实战

在高并发场景下,频繁创建与销毁对象会导致严重的内存抖动,影响系统性能。对象池技术通过复用对象实例,有效降低GC压力。
对象池基本实现结构
type ObjectPool struct {
    pool chan *Resource
}

func NewObjectPool(size int) *ObjectPool {
    return &ObjectPool{
        pool: make(chan *Resource, size),
    }
}

func (p *ObjectPool) Get() *Resource {
    select {
    case res := <-p.pool:
        return res
    default:
        return NewResource() // 新建或返回新实例
    }
}

func (p *ObjectPool) Put(res *Resource) {
    select {
    case p.pool <- res:
    default:
        // 池满则丢弃
    }
}
上述代码中,pool 使用带缓冲的 channel 存储空闲对象。Get 尝试从池中获取对象,若为空则新建;Put 将使用后的对象归还,避免重复分配。
性能对比数据
模式对象分配次数GC暂停时间(ms)
无对象池12000045.2
启用对象池80008.7

3.2 异步推理任务的线程模型设计

在高并发推理服务中,采用合理的线程模型是保障性能与资源利用率的关键。异步推理任务通常依赖事件驱动机制实现非阻塞处理。
核心设计思路
通过线程池隔离不同阶段任务:预处理、模型推理、后处理分别由专用工作线程执行,避免长任务阻塞主线程。
任务调度流程
  • 客户端请求进入任务队列
  • 调度器从队列中取出任务并分配至空闲工作线程
  • 工作线程完成推理后触发回调,返回结果
type AsyncTask struct {
    Data     []byte
    Callback func([]byte)
}

func (t *AsyncTask) Execute(engine *InferenceEngine) {
    result := engine.Process(t.Data)
    t.Callback(result) // 异步回调通知
}
上述代码定义了一个异步任务结构体,包含输入数据和完成后的回调函数。Execute 方法在工作线程中执行推理并触发回调,实现了调用与执行的解耦。

3.3 高效数据传输结构的设计与实现

数据分块与压缩策略
为提升传输效率,采用动态分块机制结合GZIP压缩。数据在发送端按可配置大小切片,并异步压缩,降低网络负载。
  • 分块大小:默认8KB,支持动态调整
  • 压缩算法:GZIP,兼顾速度与压缩比
  • 校验机制:每块附加CRC32校验码
序列化协议优化
使用Protocol Buffers替代JSON,显著减少序列化体积并提升编解码性能。
message DataPacket {
  int64 timestamp = 1;
  bytes payload = 2;
  string source_id = 3;
}
该结构定义了高效的数据包格式,其中payload字段以二进制存储,避免文本编码开销,整体体积减少约60%。
批量传输控制
参数值说明
BatchSize128每批最大数据包数
FlushInterval50ms超时强制发送

第四章:典型AI服务场景下的优化案例

4.1 图像识别服务的响应延迟优化

在高并发场景下,图像识别服务的响应延迟直接影响用户体验。为降低处理耗时,需从模型推理、网络传输与资源调度三方面协同优化。
异步批处理机制
采用异步批处理可显著提升GPU利用率。通过累积请求并批量推理,有效摊薄单次调用开销:

async def batch_inference(requests):
    images = [req['image'] for req in requests]
    tensor = preprocess(images)  # 归一化与张量转换
    with torch.no_grad():
        output = model(tensor)   # 批量前向传播
    return postprocess(output)
该函数接收异步队列中的多个请求,合并为一个批次进行推理,减少GPU启动开销。
缓存策略对比
使用LRU缓存高频请求结果,避免重复计算:
策略命中率平均延迟
无缓存-320ms
LRU-100068%140ms

4.2 自然语言处理模型的吞吐量提升

在高并发场景下,提升自然语言处理(NLP)模型的吞吐量至关重要。通过批处理推理(Batch Inference),可显著提高GPU利用率。
动态批处理配置示例

# 使用Triton Inference Server配置动态批处理
dynamic_batching {
  max_queue_delay_microseconds: 1000
  preferred_batch_size: [4, 8, 16]
}
上述配置允许服务器将多个请求合并为一批处理,max_queue_delay_microseconds 控制最大等待延迟,preferred_batch_size 指定最优批大小,平衡延迟与吞吐。
模型优化策略
  • 量化:将FP32权重转为INT8,减少内存带宽压力
  • 知识蒸馏:使用小型学生模型替代大型教师模型
  • 缓存机制:对高频输入语句缓存推理结果
结合硬件特性调优批大小,可在保持低延迟的同时实现吞吐量倍增。

4.3 实时语音分析中的资源竞争规避

在高并发实时语音分析系统中,多个处理线程可能同时访问共享的音频缓冲区或模型推理资源,导致数据竞争与性能下降。为避免此类问题,需采用精细化的资源调度策略。
基于信号量的资源控制
使用信号量(Semaphore)限制同时访问关键资源的线程数量,确保资源使用有序:
var sem = make(chan struct{}, 5) // 最多5个并发访问

func analyzeAudio(data []byte) {
    sem <- struct{}{} // 获取许可
    defer func() { <-sem }()

    // 执行语音分析任务
    process(data)
}
上述代码通过带缓冲的channel实现信号量,限制最大并发数为5,防止模型推理服务过载。
资源隔离与任务队列
  • 将语音流按会话ID分片,分配独立处理上下文
  • 使用优先级队列区分实时与离线任务
  • 通过内存池复用音频缓冲区,减少GC压力

4.4 模型预热与缓存机制的工程落地

在高并发推理服务中,模型冷启动会导致显著延迟。模型预热通过在服务启动后主动加载模型并执行若干次模拟推理,提前触发 JIT 编译和内存分配。
预热策略实现
def warmup_model(model, dummy_input, steps=10):
    model.eval()
    with torch.no_grad():
        for _ in range(steps):
            _ = model(dummy_input)  # 触发前向计算
该函数使用虚拟输入对模型进行多次前向传播,确保权重加载、显存分配和图优化完成。steps 过小可能导致预热不充分,通常设为5–10次。
缓存层设计
采用两级缓存结构提升响应效率:
  • 一级缓存:Redis 存储高频请求结果,TTL 设置为 300 秒
  • 二级缓存:本地 LRU Cache(如 Python functools.lru_cache),减少网络开销
缓存类型命中率平均延迟
Redis78%12ms
本地 LRU92%2ms

第五章:未来AI加速与跨平台演进方向

异构计算架构的融合趋势
现代AI工作负载对算力需求呈指数级增长,推动GPU、TPU、FPGA等异构计算单元深度集成。NVIDIA CUDA生态已支持跨平台编译器LLVM,实现CUDA内核在AMD GPU上的运行验证。例如,使用OpenCL封装AI推理核心:
__kernel void matmul_kernel(
    __global const float* A,
    __global const float* B,
    __global float* C,
    const int N) {
    int row = get_global_id(0);
    int col = get_global_id(1);
    float sum = 0.0f;
    for (int k = 0; k < N; ++k) {
        sum += A[row * N + k] * B[k * N + col];
    }
    C[row * N + col] = sum;
}
跨平台模型部署框架选型
主流推理引擎在不同硬件平台表现差异显著,需根据场景权衡:
框架支持硬件延迟(ms)量化支持
TensorRTNVIDIA GPU3.2INT8, FP16
Core MLApple Silicon4.1INT16, FP16
ONNX RuntimeCPU/GPU/FPGA5.7INT8, FP32
边缘-云协同推理架构设计
采用分层推理策略可降低端到端延迟。在智能安防场景中,前端设备运行轻量模型(如MobileNetV3)执行初步检测,仅将可疑帧上传至云端进行ResNet-50精检。该方案使带宽消耗减少68%,平均响应时间控制在200ms以内。
  • 设备端预处理:视频流解码 + 帧采样(15fps)
  • 本地推理:YOLOv5s检测人形目标
  • 条件上传:置信度 > 0.6 的图像触发传输
  • 云端复核:调用多模态大模型生成行为分析报告
Flutter在OpenHarmony上的性能优化实战 跨平台开发框架Flutter与OpenHarmony系统的深度整合是当前移动开发领域的热点技术。通过修改Flutter引擎源码实现鸿蒙字体渲染优化,结合分布式数据对象实现跨设备状态同步,可以显著提升应用性能。在OpenHarmony环境下,Flutter应用面临文字抗锯齿失效、动画帧率波动等技术挑战。通过原生字体管理系统整合、粒子动效分布式渲染等方案,实测显示中文排版速度提升40%,动画帧率稳定在60FPS。这些优化不仅适用于教育类应用,也为金融、电商等需要高性能跨平台应用的场景提供了参考方案。 阅读详情

相关推荐

【愚公系列】《高效使用DeepSeek》040-公共服务优化

你是否也目睹过这样的场景?暴雨中的城市交通指挥中心,值班员盯着30块监控屏却找不到积水最深的路段;社区医院疫苗接种系统里,80岁老人的预约总被黄牛脚本挤到三个月后;12345热线接听的“小区树荫影响采光”投诉,竟在7个部门间流转了28天仍未落地——当公共服务遇上超大规模社会的治理复杂度,传统经验正遭遇前所未有的数字鸿沟。此刻,DeepSeek以“城市神经中枢”的姿态切入公共治理深水区。

愚公智库 10万+

华为手机所有图标变黑_华为正式发布鸿蒙OS:狙击所有操作系统,手机随时可用!...

本文摘自央视、腾讯新闻、新浪科技等等北京时间8月9日,华为消费者业务在其全球开发者大会上,正式向全球推出了自主操作系统--Harmony(鸿蒙) OS!有别于Android/Linux、iOS系统的是,这是一款全新的基于微内核的面向全场景的分布式操作系统,具有全场景,分布式等特性,实现手机、PC、平板、智慧大屏、车机等跨终端无缝协同体验!鸿蒙OS的四大技术特性分布式架构首次用于终端OS,...

weixin_30191947的博客 663

【愚公系列】《高效使用DeepSeek》056-质量检测优化

你是否也在经历这样的工业荒诞?价值百万的精密轴承通过所有检测标准,却在装机瞬间因纳米级应力纹裂成碎片;药企实验室里,质检仪对每颗药片360度扫描的「完美」报告,竟漏看了刻痕深度0.01毫米的偏差引发的剂量雪崩;甚至当自动驾驶汽车通过3000项路测时,某颗摄像头的镀膜分子排布异常,已在AI视觉盲区埋下改写生死的蝴蝶效应——在质量定义被量子物理重塑的时代,传统检测手段正沦为举着游标卡尺丈量黑洞的原始仪式。此刻,DeepSeek化身「缺陷宇宙捕手」,以飞米级洞察重构质量认知。

愚公智库 10万+

2025毕设springboot基于HarmonyOS的超市购物系统后程序+论文

系统以优化用户购物动线为核心,通过数据驱动的智能算法实现需求精准匹配,同步提升超市运营效率和用户满意度,最终构建具有商业应用价值和学术研究意义的新型购物生态系统。[2] 刘小玲, 李慧云, 殷珊珊, 贾少华, 许杰辉, 郝颖. 一种基于软件测试任务的信息化管理系统的原型设计[J]. 现代信息科技, 2024, 8 (12): 91-95。[8] 陈湘瑾, 于孔亮, 祖子帅, 修昂. 基于数据库和Java的宿舍管理系统[J]. 科学技术创新, 2021, (09): 96-97。

qha104的博客 1140

GPT-3代际对比实测:text-davinci-002与003在教育AI中的能力跃迁与工程落地

大语言模型(LLM)的指令遵循能力是其从通用基座走向垂直应用的核心指标。其本质源于训练范式演进——从监督微调+奖励建模(SFT+RM)到宪法式AI(Constitutional AI)的范式迁移,显著提升了响应的事实一致性与意图对齐度。这种升级不仅体现为更高质写作和复杂指令处理能力,更深刻影响实际部署中的prompt工程设计、token成本控制与API稳定性保障。尤其在教育科技等强逻辑、高可信场景中,模型对高考评分标准的理解、对学生作文的结构化诊断、以及对中文专有名词的准确识别,均依赖于底层对齐机制的可靠性

weixin_34356555的博客 400

Mythos漏洞挖掘模型:可规模化自主发现的AI安全新范式

漏洞挖掘正从人工驱动转向AI原生范式,其核心是将安全分析建模为可调度、可复现、可验证的系统工程问题。基于强化学习与多阶段红队博弈训练,新一代模型不再依赖规则库或模糊测试,而是通过跨版本代码差异分析、语义敏感性建模和推理链显式化,实现对内存管理缺陷、竞态条件、沙箱逃逸等深层漏洞的自主推演。这种能力突破了传统SAST/DAST工具的覆盖盲区,尤其在Linux内核、Django、FFmpeg等复杂系统中展现出零日发现能力。其技术价值在于将‘漏洞发现’压缩为标准化API调用,支撑CI/CD流水线级安全左移,并推动补

weixin_34326179的博客 478

模型无关AI系统设计:解耦、调度与热插拔的工程实践

在AI工程化落地中,‘模型无关’并非指技术中立,而是构建具备韧性、可观测性与可演进能力的智能系统的核心范式。其本质是将模型视为可替换的计算单元,通过任务抽象、统一网关、上下文感知调度和模块化部署,实现模型能力与业务逻辑的彻底解耦。该范式支撑金融风控的多模型交叉验证、医疗SaaS的端云协同推理、智能硬件的算力自适应等关键场景,显著提升系统SLA稳定性、合规响应速度与长期运维效率。本文聚焦生产级模型无关架构的接口契约设计、专家化调度决策机制及热插拔基础设施实现。

cumo7370的博客 631

Gemini体验变差真相:不是模型退化,而是服务架构错位

大模型可用性并非仅由参数量或训练数据决定,而是模型能力、推理服务、缓存策略、安全过滤、上下文管理与交互设计六层系统协同的结果。当用户感知‘Gemini变烂’,往往源于Lite路径的上下文截断、过度激进的安全审核,或隐形模型路由导致的响应不一致——这些属于AI服务策略与工程实现层面的问题,而非基础模型能力倒退。理解Gemini的多版本动态路由机制和中文场景特有约束(如成语误读、政策时效滞后、缩写歧义),可显著提升技术文档生成、代码辅助与多跳推理等核心任务的稳定性和可信度。

congsikuai0611的博客 397

HarmonyOS校园生态与分布式开发:从技术原理到学生成长路径

分布式操作系统是构建万物互联时代的技术基石,其核心在于通过分布式软总线、数据管理与任务调度,实现跨设备的资源虚拟化与能力协同。这一架构解决了传统物联网开发中设备异构、协议复杂、协同困难的工程痛点,为智能硬件、汽车电子、工业控制等场景提供了统一高效的开发范式。HarmonyOS作为面向全场景的分布式操作系统,通过一次开发多端部署、确定性时延与全栈安全等特性,显著降低了全场景应用创新的门槛。对于高校学生而言,深入理解其分布式内核与原子化服务框架,不仅能掌握物联网与嵌入式系统的现代开发模式,更能通过校园布道师计划

weixin_30740295的博客 467

Deepseek V4-Pro实战指南:128K上下文与工程级代码生成

大语言模型在软件开发中的应用已从概念验证迈入工程落地阶段。128K上下文能力正成为解决真实开发中‘上下文断裂’问题的关键技术指标,它支撑起对多文件、长文档、复杂依赖关系的联合理解;而工程级代码生成则要求模型不仅语法正确,还需精准遵循框架规范、异常处理约定、测试闭环等实践约束。Deepseek系列模型通过V2.5至V4-Pro的渐进式演进,在中文技术生态适配、指令理解准确率、多轮调试建模及Spring/uni-app等主流栈支持上展现出差异化优势,尤其在API对接、微服务开发、低代码辅助等高频场景中显著提升人

weixin_30321709的博客 434

一文带你了解SOA接口测试

了解汽车电子行业的人,近几年可能经常见到一个词“SOA”,那SOA具体是什么?作为测试人员应该要测试哪些内容呢?这篇文章就简单给大家介绍一下。SOA(Service Oriented Architecture)是一种面向服务的架构,最早应用于IT行业,虽然行业内对于SOA的定义没有一个统一的描述,但是总体而言,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。在汽车领域,对于高性能计算平台而言,为了实现域控制器以及区域控制器之间的互联互通和软硬分离、缩短开发周期等优势,也引入了SOA的

怿星科技的博客 7156

GPT-4 Turbo深度解析:128k上下文与多模态API重构AI开发范式

大语言模型(LLM)的演进正从参数规模竞争转向工作流级重构。GPT-4 Turbo作为关键里程碑,以128k上下文长度突破长文本语义连贯性瓶颈,使整本标准文档、多源合同与行业白皮书可一次性输入并交叉推理;其原生支持的多模态API(如gpt-4-vision-preview与DALL·E 3)实现了自然语言到视觉语义的精准映射,不再依赖OCR+RAG等传统中间链路。技术价值在于降低token成本后释放‘富输入-深推理’能力,推动AI从工具执行者升级为问题共同定义者。典型应用场景覆盖法律合同审查、工业设备故障诊

frank1998819 504

使用cubeMX生成USB HID设备

本文主要介绍如何使用stm32开发板和cubeMX生成HID设备,供参考。

专注音频,高效工作,快乐生活! 970

SCA工具源鉴SCA4.9版本进阶︱多模态SCA引擎重磅升级,开源风险深度治理能力再次进阶

源鉴SCA 4.9 同源引擎新增支持C、C++、Java、PHP、Go、Python、Lua、JavaScript、TypeScript、Rust、C#、CSS、Shell、Haskell、HTML、Julia、Ruby、Scala、Assembly、Clojure、D、Dart等共84种语言。源鉴SCA 4.9新增VMDK、IMG、QCOW2、QCOW等格式的虚拟机镜像检测,实现对镜像中软件包及组件的全栈识别,满足合规审计和镜像发布前的安全评估需求,降低部署系统成分不明的风险。

软件供应链安全选型指南 1066

BCC Python开发教程&常用BCC工具(一)

这个教程主要目的是展示如何使用python来进行bcc工具开发和编程。教程主要分为两个部分:可观察性和网络。文中的代码片段均都来自于bcc:代码片段的licenses见bcc中具体文件。也可参考bcc开发者手册以及end-users工具教程:。此外bcc还开放有lua接口。

hudongliang2006nb的专栏 2086

边表法

边表法是用来绘制填充一个面的,边表法的关键是边表和连接边表的扫描线。 对于边的描述利用边表数据结构,包含边与扫描线的交点x坐标,边的最大y坐标,这样可以知道边加入到哪些扫描线上,便还有一个指针来记录扫描线上其它边。 //边数据结构 #pragma once #ifndef __CAETZ__ #define __CAETZ__ #include "pch.h" #include "CPoin...

weixin_42376458的博客 2101

颠覆传统:如何用Midscene.js在10分钟内解决跨平台UI自动化难题

在传统UI自动化测试中,你是否曾为这些痛点烦恼过?每次页面重构都要重写CSS选择器,跨域iframe元素无法定位,Canvas画布上的按钮无法点击,移动端与桌面端需要完全不同的测试框架。Midscene.js通过纯视觉AI技术,让你用自然语言描述操作,系统自动执行——无需关心底层DOM结构,真正实现"所见即所得"的自动化测试。 Midscene.js是一个开源的、基于视觉驱动的UI自动化框架,它

gitblog_00583的博客 1121

从零搭建SPI通信系统:AXI Quad SPI IP核在Xilinx平台上的完整配置流程

本文详细介绍了在Xilinx平台上使用AXI Quad SPI IP核从零搭建SPI通信系统的完整配置流程。涵盖IP核架构解析、Vivado环境配置、寄存器编程实战及性能优化策略,帮助开发者快速实现高速稳定的SPI通信,特别适用于嵌入式系统开发中的外围设备连接需求。

hh234的博客 1053

怎样3分钟掌握AI视觉自动化:Midscene.js终极指南让你告别复杂代码

还在为编写繁琐的浏览器自动化脚本而烦恼吗?还在为每次UI改动就要重写选择器而头疼吗?Midscene.js为你带来了革命性的解决方案——用自然语言控制一切界面!这个开源项目让AI成为你的"眼睛"和"手指",只需描述你想做什么,它就能自动执行。无论是网页、移动应用还是桌面软件,Midscene都能像真人一样操作,真正实现了"所见即所得"的自动化体验。 ## 痛点场景:当程序员不再想写代码 想象一

gitblog_00323的博客 415

华为MetaERP在财务模块(GL/AP/AR/FA)及子账模块效率优化、月末关账加速、与外部系统对账方面,已形成一套**“并行+实时+智能化”**的完整技术方案

华为MetaERP推出"并行+实时+智能化"技术方案,显著提升财务模块效率:1)采用三级并行策略和内存计算,使子账模块单任务处理时间从142分钟降至9分钟;2)通过并行关账架构将月末关账时间从68小时压缩至7.2小时;3)运用AI智能对账提升效率50%,并支持异步流程和区块链审计。典型场景测试显示月结耗时下降89%,CPU利用率提升116%。方案建议分阶段实施,注意依赖分析、任务粒度设计和性能监控,避免过度并行。该方案已有效解决大型集团财务处理效率低、关账慢、对账难等痛点。

金牌架构师 559

OpenMM | PDBFixer 用于蛋白质预处理

PDBFixer 用于蛋白质预处理

DrugOne 3006

2024旗舰手机选购指南:iPhone 18、小米18 Pro、华为Mate90全面对比

智能手机作为现代数字生活的核心终端,其选购决策需要综合考量处理器架构、影像系统、续航快充等关键技术指标。从技术原理看,旗舰手机的性能表现主要取决于SoC芯片的制程工艺和能效比,而影像质量则与传感器尺寸、算法调校密切相关。在工程实践层面,120W快充技术通过电荷泵和双电芯方案实现高效能量转换,LTPO屏幕技术则能智能调节1-144Hz刷新率以平衡流畅度与功耗。这些技术的价值体现在为用户提供更持久稳定的移动体验,特别适合游戏娱乐、移动办公等高频使用场景。本文聚焦iPhone 18 Pro系列、小米18 Pro和

cihongmo6452的博客 487

华为od 面试八股文_前端_02_含答案

华为od 面试八股文_前端_02_含答案

MISAYAONE的博客 1998

【阿里Java岗的魔鬼三面】狠心刷完这6份pdf,三面之后挺进阿里,定级P

以上就是面试的大概过程,不得不说,大厂的面试还是非常有技术水平的,这个过程中我学到了很多,这里分享下个人的一些心得:1、基础!基础!基础!重要的事情说三遍,无论是什么阶段的程序员,基础都是最重要的。每个公司的面试一定会涉及到基础知识的提问,如果你的基础不扎实,往往第一面就可能被淘汰。2、要对简历上的技术点很熟悉。

2301_82242988的博客 305

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

基于HarmonyOS API 24咖啡品鉴记录应用当CoffeeRecord实例任意属性(如 rating、note 或 flavors 数组元素)发生变更时,状态管理系统追踪到变更路径

在移动互联网与智能穿戴设备高度普及的今天,"习惯养成"已经从一个模糊的自我管理理念,演变为一个可量化、可追踪、可视化的数字化产品赛道。越来越多的人希望借助手中的智能终端,把"早起、冥想、阅读、运动"这些抽象的自律行为,转化为一条条清晰的数据曲线和一张张可触摸的打卡卡片。而鸿蒙生态(HarmonyOS)凭借其跨设备协同、分布式软总线以及声明式 UI 开发框架 ArkUI,为这类注重"轻量化交互 + 即时反馈"的生活方式类应用提供了极为理想的生长土壤。本应用正是一款面向"晨间场景"深度打磨的习惯追踪工具。它聚焦

2301_79516720的博客 273

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【粉丝福利社】自动驾驶感知实践:从3D到BEV

📝【技术摘要】 BEV感知技术通过鸟瞰图视角实现多传感器数据融合,解决自动驾驶中的视角异构问题。核心突破包括: 1️⃣ 传感器标定:从传统几何方法演进至学习式优化(BEVCALIB/GraphBEV),投影误差<3px 2️⃣ 时间同步:采用智能补偿技术,处理39-46ms的时间偏差 3️⃣ 算法演进: 2015-2018:基于IPM的传统CV方案 2019-2022:Lift-Splat-Shoot深度估计框架+BEVFormer的Transformer架构(NDS 56.9) 2023-2025

愚公智库 7万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 【蓝色能源转型加速器】:基于Python的海上风电数据预处理全流程解析
下一篇: 揭秘华为内部Java调试流程:90%开发者忽略的关键细节
DevPath
博客等级 码龄1年 179粉丝 2176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值