关于C# halcon内存泄漏的研究
开发环境:Win7 VS2002 halcon12, 直接运行Debug的exe
不释放
private void butTemp_Click(object sender, EventArgs e)
{
HOperatorSet.SetSystem("clip_region", "false");
HObject region;
HOperatorSet.GenEmptyRegion(out region);
for (int i = 0; i < 1000; i++)
for (int j = 0; j < 10000; j++)
{
HObject tmpRegion;
HOperatorSet.GenRectangle1(out tmpRegion, i, j, i, j);
HOperatorSet.Union2(tmpRegion, region, out region);
}
HTuple tArea, tmp;
HOperatorSet.AreaCenter(region, out tArea, out tmp, out tmp);
Debug.Assert(tArea > 0);
TestForm form = new TestForm();
form.ShowDialog();
}
不到一分钟运行结束,最多占用1G内存,运行结束占用800M内存。
释放tmpRegio
private void butTemp_Click(object sender, EventArgs e)
{
HOperatorSet.SetSystem("clip_region", "false");
HObject region;
HOperatorSet.GenEmptyRegion(out region);
for (int i = 0; i < 1000; i++)
for (int j = 0; j < 10000; j++)
{
HObject tmpRegion;
HOperatorSet.GenRectangle1(out tmpRegion, i, j, i, j);
HOperatorSet.Union2(tmpRegion, region, out region);
tmpRegion.Dispose();
}
HTuple tArea, tmp;
HOperatorSet.AreaCenter(region, out tArea, out tmp, out tmp);
Debug.Assert(tArea > 0);
TestForm form = new TestForm();
form.ShowDialog();
}
不到一分钟运行结束,最多占用0.5G内存,运行结束占用0.5G 内存。
释放region
private void butTemp_Click(object sender, EventArgs e)
{
HOperatorSet.SetSystem("clip_region", "false");
HObject region;
HOperatorSet.GenEmptyRegion(out region);
for (int i = 0; i < 1000; i++)
for (int j = 0; j < 10000; j++)
{
HObject tmpRegion;
HOperatorSet.GenRectangle1(out tmpRegion, i, j, i, j);
HOperatorSet.Union2(tmpRegion, region, out region);
tmpRegion.Dispose();
}
HTuple tArea, tmp;
HOperatorSet.AreaCenter(region, out tArea, out tmp, out tmp);
Debug.Assert(tArea > 0);
region.Dispose();
TestForm form = new TestForm();
form.ShowDialog();
}
几乎没变化,还是0.5G左右
释放bak
private void butTemp_Click(object sender, EventArgs e)
{
HOperatorSet.SetSystem("clip_region", "false");
HObject region;
HOperatorSet.GenEmptyRegion(out region);
for (int i = 0; i < 1000; i++)
for (int j = 0; j < 10000; j++)
{
HObject tmpRegion;
HOperatorSet.GenRectangle1(out tmpRegion, i, j, i, j);
HObject bak = region;
HOperatorSet.Union2(tmpRegion, region, out region);
bak.Dispose();
tmpRegion.Dispose();
}
HTuple tArea, tmp;
HOperatorSet.AreaCenter(region, out tArea, out tmp, out tmp);
Debug.Assert(tArea > 0);
region.Dispose();
TestForm form = new TestForm();
form.ShowDialog();
}
不到一分钟运行结束,内存几乎没增加,不到20M以内。
结论
Union2的出参和入参一致时,必须手动释放,这样才能100% 马上回收内存。
相关文章:
关于C# halcon内存泄漏的研究
开发环境:Win7 VS2002 halcon12, 直接运行Debug的exe 不释放 private void butTemp_Click(object sender, EventArgs e) { HOperatorSet.SetSystem("clip_region", "false"); HObject region; …...
高精度地图定位在高速公路自动驾驶系统中的应用
近年来随着汽车保有量不断增加,随之而来的是: ( 1) 严重的交通拥堵,通行效率低下,用在通行上的时间不断增加; ( 2) 交通事故频发,交通事故导致的伤亡人数和费用不断增加,而且绝大多数事故是由人为因素导致的; ( 3) 大气…...
【Apollo学习笔记】——规划模块TASK之SPEED_HEURISTIC_OPTIMIZER
文章目录 前言SPEED_BOUNDS_PRIORI_DECIDER功能简介SPEED_BOUNDS_PRIORI_DECIDER相关配置SPEED_BOUNDS_PRIORI_DECIDER流程1. 对路程和时间进行采样以及速度限制2. 设计状态转移方程(cost计算)2.0 CalculateCostAt代价计算2.1 GetObstacleCost障碍物cost…...
R语言APRIORI关联规则、K-MEANS均值聚类分析中药专利复方治疗用药规律网络可视化...
全文链接:http://tecdat.cn/?p30605 应用关联规则、聚类方法等数据挖掘技术分析治疗的中药专利复方组方配伍规律(点击文末“阅读原文”获取完整代码数据)。 方法检索治疗中药专利复方,排除外用中药及中西药物合用的复方。最近我们…...
3. MySql 5.7安装方式
服务器ip数据库版本硬件要求10.1.1.31mysql-boost-5.7.31.tar.gz2G/40G,内存不够需要开swap空间10.1.1.32mysql-boost-5.7.31.tar.gz2G/40G关闭swap swapoff -a && sed -i ‘/ swap / s/^(.*)$/#\1/g’ /etc/fstab 安装依赖 yum -y install make cmake gcc gcc-c++ bis…...
Flink 如何定位反压节点?
分析&回答 Flink Web UI 自带的反压监控 —— 直接方式 Flink Web UI 的反压监控提供了 Subtask 级别的反压监控。监控的原理是通过Thread.getStackTrace() 采集在 TaskManager 上正在运行的所有线程,收集在缓冲区请求中阻塞的线程数(意味着下游阻…...
LeetCode-1005-K次取反后最大化的数组和-贪心算法
题目描述: 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数组 可能的最大和 。 …...
Linux内核源码分析 (5)多处理器调度
Linux内核源码分析 (5)多处理器调度 文章目录 Linux内核源码分析 (5)多处理器调度注:本章节使用的内核版本为Linux 5.6.18一、 SMT和NUMA1、SMP (对称多处理器结构)2、NUMA (非一致内存访问结构) 二、多核调度三、调度域和调度组四、SMP调度详…...
华为云云服务器评测|华为云云耀云服务器L实例使用教学
文章目录 教学小故事 教学 华为云云耀云服务器L实例是一款提供高效、可靠、安全的基础设施服务的云服务器。下面是使用教学: 登录华为云官网。 测评产品链接:https://www.huaweicloud.com/product/hecs-light.html 进入云耀云服务器管理控制台…...
这个在线网站让你三分钟制作出一份精美简历
今天,我要向大家推荐一个神奇的在线工具网站,它能够提供免费简历模板、简历范文,支持在线编辑,并且一键下载为PDF。这个工具让你的简历制作变得轻松便捷! 首先,这个网站的简历模板非常丰富多样。无论你是刚…...
Sql 函数传递参数 字符串拼接
使用场景 一个计算价格的函数,多个存储过程调用,因业务需求经常要新增参数,避免修改函数时程序执行存储过程报错,将多个参数拼接为一个字符串传递 -- 调用函数CalcuPrice(UnitPrice,CONCAT(MFQZC,MFQZC,&ItemNum,ItemNum,&am…...
java八股文面试[多线程]——两个线程交替打印1-100之间的数字
一份代码,两个线程,使用synchronize实现: 重写run()方法,将输出1到100之间整数的代码写到同步方法里。线程1进入到同步方法,输出一个整数后,阻塞并释放锁。线程2进入到同步方法,唤醒线程1&…...
gRPC之gRPC认证
1、gRPC认证 前面篇章的gRPC都是明文传输的,容易被篡改数据,本章将介绍如何为gRPC添加安全机制。 gRPC默认内置了两种认证方式: SSL/TLS认证方式 基于Token的认证方式 同时,gRPC提供了接口用于扩展自定义认证方式。 1.1 TLS…...
简易虚拟培训系统-UI控件的应用3
目录 Button组件的组成 Button组件方法1-在Button组件中设置OnClick()回调 Button组件方法2-在脚本中添加Button类的监听 上一篇使用了文件流读取硬盘数据并显示在Text组件中,本篇增加使用按钮来控制显示哪一篇文字信息。 Button组件的组成 1. 新建Button&#…...
语言模型(language model)
文章目录 引言1. 什么是语言模型2. 语言模型的主要用途2.1 言模型-语音识别2.2 语言模型-手写识别2.3 语言模型-输入法 3. 语言模型的分类4. N-gram语言模型4.1 N-gram语言模型-平滑方法4.2 ngram代码4.3 语言模型的评价指标4.4 两类语言模型的对比 5. 神经网络语言模型6. 语言…...
【3.Vue子组件调用父组件方法】
1.概述 使用组件建抛出事件的方式来调用父组件的方法,不直接用this.$parent.function的方法,当然这种方式是可以的。 2.代码实现 2.1 父组件代码 父组件写一个方法给子组件调用 // 设备点击事件// equipId:设备id// leftValue:left值// topValue:top…...
算法系列-876-求链表的中间节点
求链表中间节点,如果有两个中间节点取后面那个 链表定义 // lc codestart /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(…...
h5 ws 客户端 监听ws服务器广播的信息
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>AI智能写作</title><!-- Bootstrap CSS --><meta charset"utf-8"><meta name"viewport" content"widt…...
网络基础之重中之重
目录 IP协议 编辑 基本概念: 协议头格式: 编辑 网段划分 DHCP : CIDR: 特殊的IP地址: IP地址的数量限制: 私有IP和公网IP 路由 路由的过程: 数据链路层 认识以太网&#x…...
HarmonyOS应用开发者-----基础认证试题及答案
HarmonyOS应用开发者基础认证试题及答案 试题会不定时刷新,本试题仅供大家学习参考 【判断题】 2.5/2.5 所有使用@Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。 正确(True)错误(False) 回答正确【判断题】 2.5/2.5 在Column和Row容器组…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
