首页 > 系统相关 >记.Net Core Host服务使用Dapper内存溢出问题

记.Net Core Host服务使用Dapper内存溢出问题

时间:2024-09-25 12:36:40浏览次数:7  
标签:Core 缓存 Host 内存 Dapper csv Net 溢出

背景

项目要做一个数据迁移,牵扯大概60多张表,几千万数据,这些数据都被放到了csv文件中并拆分成了10w条记录一个文件。

思路是使用.Net Core Host开一个线程去读取文件夹csv根据业务导入到表就可以。

ps:第一次用Dapper做这种处理

问题

在导入过程中,因为我们的服务器内存只有8G。经常跑一会服务器就内存溢出了。

因为我们开始的设计就是一个csv导入完成,释放,第二个csv加载,应该不会有内存溢出问题。

我们一开始怀疑是不是csv数据读取到内存没有释放,也怀疑过Cli的虚拟内存占用问题。

调查

没办法,直接上工具查内存。一查结果是SQLMapper有个缓存。

原因

Dapper 使用一个内部缓存来存储 SQL 查询和相应的命令类型,以提高性能。但是,如果查询非常频繁且各不相同,这个缓存可能会占用大量内存。

为了防止内存溢出,需要手动调用 SqlMapper.PurgeQueryCache() 方法来清理缓存

结论

怎么说呢,第一次用Dapper不知道有这个东西,开始从来没怀疑过Dapper也是EF用的太多了,从来没注意过有缓存释放这种说法。

标签:Core,缓存,Host,内存,Dapper,csv,Net,溢出
From: https://www.cnblogs.com/MrChuJiu/p/18431081

相关文章

  • 使用.NET并行任务库(TPL)与并行Linq(PLINQ)充分利用多核性能
    使用.NET并行任务库(TPL)与并行Linq(PLINQ)充分利用多核性能 前言最近比较闲,(项目要转Java被分到架构组,边缘化人员,无所事事哈哈哈哈)记录一下前段时间用到的.NET框架下采用并行策略充分利用多核CPU进行优化的一个方法起因是项目中有个结算的方法,需要汇总一个月的数据......
  • C#|.net core 基础 - 深拷贝的五大类N种实现方式
    C#|.netcore基础-深拷贝的五大类N种实现方式 合集-C#|.netcore基础(6) 1.C#|.netcore基础-“hello”.IndexOf(“\0”,2)中的坑08-302.C#|.netcore基础-如何判断连续子序列09-033.C#|.netcore基础-值传递vs引用传递09-194.C#|.netcore基础-扩展数......
  • 一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
    一个.NET开源、快速、低延迟的异步套接字服务器和客户端库 思维导航前言项目介绍主要特性功能组件使用示例基准测试项目源代码TCP聊天服务器示例项目源码地址优秀项目和框架精选前言最近有不少小伙伴在问:.NET有什么值得推荐的网络通信框架?今天大姚给大家分......
  • 【深度学习基础模型】径向基函数网络(Radial Basis Function Networks, RBFN)详细理解并
    【深度学习基础模型】径向基函数网络(RadialBasisFunctionNetworks,RBFN)【深度学习基础模型】径向基函数网络(RadialBasisFunctionNetworks,RBFN)文章目录【深度学习基础模型】径向基函数网络(RadialBasisFunctionNetworks,RBFN)1.算法原理介绍:径向基函数网络(R......
  • 使用.NET并行任务库(TPL)与并行Linq(PLINQ)充分利用多核性能
    前言最近比较闲,(项目要转Java被分到架构组,边缘化人员,无所事事哈哈哈哈)记录一下前段时间用到的.NET框架下采用并行策略充分利用多核CPU进行优化的一个方法起因是项目中有个结算的方法,需要汇总一个月的数据在内存中进行计算,统计,分组,然后产生新的数据在某个客户那部署......
  • modbus设备数据 转 profinet IO项目案例
    目录1案例说明12VFBOX网关工作原理13准备工作24设置网关采集MODBUS从站数据25用PROFINETIO协议转发数据86案例总结101案例说明设置网关采集Modbus设备数据把采集的数据转成profinetIO协议转发给其他系统。2VFBOX网关工作原理VFBOX网关是协议转换网关,是把一......
  • BACnet协议(1)
    1、BACnet介绍BACnet(BuildingAutomationandControlNetworks)是一种用于智能建筑的通信协议,它是由国际标准化组织(ISO)、美国国家标准协会(ANSI)和美国采暖、制冷与空调工程师学会(ASHRAE)定义的通信协议。主要用途包括:暖通空调(HVAC)控制:BACnet用于控制和监测暖通空调系统的运行......
  • Nat Genet | 发现8个新基因!外显子组测序揭示罕见编码基因突变对成人认知功能的影响
    认知功能是一种复杂的心理过程,包括注意力、记忆力、处理速度、空间能力、语言和解决问题的能力,很难单独评估。已有研究表明,成人认知功能受到遗传的强烈影响。基于常见变异的全基因组关联研究(GWAS),目前已经确定了近4000个个体效应较小的认知功能基因位点。同时,GWAS还证明了认知功能和......
  • Ubuntu 通过Supervisor 或者 systemd 管理 .Net应用
    在Ubuntu上安装.NET8.0,通过supervisor或systemd管理.NET应用服务,确保应用能够自动启动、运行以及在崩溃时重启。1.安装.NET8.0最新的Ubuntu版本已经不需要注册Microsoft包存储库了,具体的可以参考微软官方文档安装,在Ubuntu上安装.NETSDK或.NET运行时2.使用Sup......
  • Elasticsearch7.7修改network.host IP地址 start启动失败及Elasticsearch7的配置项详
    一、Elasticsearch7.7修改network.hostIP地址start启动失败    使用的是最新的Elasticsearch7.7版本,启动后默认是绑到127.0.0.1上的,这肯定不是我们需要的,所以修改配置文件将network.host配置选改成我们的服务器局域网IP地址。Elasticsearch7.7版本安装后配置文件elastic......