首页 > 系统相关 >RDLC降低使用内存

RDLC降低使用内存

时间:2024-05-16 15:54:54浏览次数:10  
标签:降低 FromSeconds TimeSpan RDLC 打印 内存 LifetimeServices

在Winform使用RDLC时,在批量打印情况下,内存随着打印任务的数量逐渐增加。即便手动GC效果也不明显。

原因:

localReport在创建时,每个实例都是一个应用程序域。租约的过期时间比较久,按照网上的资料,过期时间大约10分钟左右。

这就导致即便打印完了,内存也不会很快下降。

解决办法:

1. 手动释放RDLC资源

 report.ReleaseSandboxAppDomain();
 report.Dispose();

2. 修改系统里的租约相关的时间

网上给到的代码是

            LifetimeServices.LeaseTime = TimeSpan.FromSeconds(5);//租约
            LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(5);//检查间隔
            LifetimeServices.RenewOnCallTime = TimeSpan.FromSeconds(1);//续订时间
            LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(5);//等待响应时间

 

措施1和2同时使用时,连续打印100个RDLC,内存在70-85浮动。比之前的每个报表增加1MB内存好很多。

遗留问题

打印RDLC(导出PDF)会产生临时文件。大量打印时,临时文件夹会很大。如何避免?

标签:降低,FromSeconds,TimeSpan,RDLC,打印,内存,LifetimeServices
From: https://www.cnblogs.com/yantaixuchao/p/18196071

相关文章

  • buffer/cach太高导致k8s无法新建pod分配内存
    1.使用hcache查看buff/cache占用情况执行下面的命令安装hcache,原hcache项目地址https://github.com/silenceshell/hcachewgethttps://silenceshell-1255345740.cos.ap-shanghai.myqcloud.com/hcachechmod+xhcachemvhcache/usr/local/bin/查看缓存排名前十的进程hc......
  • 弃用MHz!微软Windows 11内存性能指标切换到 MT/s
    微软近日面向Beta频道的WindowsInsider项目成员发布了Windows11系统的KB5037008更新。本次更新引入了一项重要的性能指标变化:将任务管理器中的内存性能指标从MHz(兆赫)切换到MT/s(每秒兆传输数)。计算机内存的数据传输速度一直以MHz为单位,MHz代表内存模块每秒可以执行多少百万个......
  • msvc 获取c++类内存布局 /d1 reportAllClassLayout
     visualstudio配置获取所有类内存布局/d1reportAllClassLayout或者指定类/d1reportSingleClassLayoutXXXclass  编译时输出:     ps:https://www.openrce.org/articles/full_view/23   【原文地址】https://blog.csdn.net/qq_29542611/article......
  • JVM非运行时共享内存之直接内存
    直接内存(DirectMemory)并不是虚拟机运行时数据区的一部分。为何存在呢?观察下两图进行对比:有没有似曾相识?!很多架构的设计都基于这种思想,提高性能和效率。NIO的Buffer提供一个可以直接访问系统物......
  • python列出centos7内存使用前50的进程信息
    python代码,列出centos7系统内存使用排名前50的进程信息,按照内存使用大小从大到小排序。 importpsutil#获取系统内存信息total_memory=psutil.virtual_memory().total/(1024.0**3)#转换为GBavailable_memory=psutil.virtual_memory().available/......
  • .NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis)
    .NET缓存里分了几类,主要学习内存缓存、分布式缓存一、内存缓存IMemoryCache#1、Program注入缓存builder.Services.AddMemoryCache();2、相关方法及参数Get、TryGetValue、GetOrCreate、GetOrCreateAsync、Set、Remove,关键参数是过期时间,GetOrCreate、GetOrCreateAsync是通......
  • TEE 开发 禁止大内存TA加载
    我们会经常遇到一些TA,把自己的TA_STACK_SIZE和TA_HEAP_SIZE 设置的太大,从而无法成功被load的情况。因为taram一共就这些内存,但是TA的这两个宏配置是由用户去决定的,为了避免这些TAowner方便自己害了他人考虑,我们在可以做出如下限制。在bl32里面loadta的时候做......
  • jvm垃圾回收及内存分配
    目录0.垃圾收集器的相关JVM参数1.java垃圾回收器种类2.串行回收器3.并行回收器3.1ParNew回收器3.2ParallelGC回收器3.3ParallelOldGC回收器3.4CMS回收器CMS主要工作步骤CMS说明3.5G1回收器3.5.1新生代GC3.5.2G1的并发标记周期3.5.3混合回收3.5.4G1日志解析0.垃圾收......
  • idea jprofiler内存快照分析
    1、idea按照jprofiler插件setting->plugins->marketplace搜索jprofiler,安装并重启2、分析dump文件dump内存快照方式:jmap-dump:format=b,file=heapdump.phrof{jvm的pid}使用jprofiler导入dump文件导入成功3、jprofiler工具关注“BiggestObjects”、"GCroots"、"Packa......
  • 内存溢出问题分析与处理
    内存占用情况查询检查系统内存使用情况以GiB为单位进行显示remotecmd"free-g"1.total:物理内存总量(GiB)。2.used:当前已使用的物理内存量(不包括缓冲区和缓存)(GiB)。3.free:可用的物理内存量(GiB)。4.shared:被多个进程共享的内存量(GiB)。5.buff/cache:作为......