专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

再记一次MemoryLeak分析

  性能是优化出来的,不管是在上生产前,还是在上生产后。大部分性能在性能测试阶段就能发现问题,但也有一些性能问题,结合生产的环境,生产数据才能表现出来,成为一个显著的瓶颈。
  这次是生成pdf造成的内存泄露,大体代码如下,具体表现是内存缓慢增长,在docker中比windows增长速度要快,但都有只增不回收的特点。usingSystem。Data;usingSystem。Reflection。Metadata;usingQuestPDF。Helpers;usingQuestPDF。Infrastructure;usingQuestPDF。Fluent;usingQRCoder;usingMicrosoft。AspNetCore。Mvc;usingQuestPDF。Drawing;usingQuestPDF;varbuilderWebApplication。CreateBuilder(args);varappbuilder。Build();app。MapGet(getpdf,(){vartablenewDataTable();for(vari0;i10;i){table。Columns。Add(i。ToString());}for(varrow0;row1000;row){table。Rows。Add(row。ToString(),row。ToString(),row。ToString(),row。ToString(),row。ToString(),row。ToString(),row。ToString(),DateTime。Nowwwewrwerewfdsfdswefwefewfwefwefewrow,row。ToString(),row。ToString());}returnTypedResults。File(GetPDF(table),contentType:applicationpdf,fileDownloadName:a。pdf);});app。Run();staticIContainerCellStyle(IContainercontainer){returncontainer。DefaultTextStyle(xx。SemiBold()。FontSize(11))。PaddingVertical(5)。BorderBottom(1)。BorderColor(Colors。Black);}staticbyte〔〕GetPDF(DataTabledt){vardocQuestPDF。Fluent。Document。Create(container{usingvarstreamFile。OpenRead(Path。Combine(AppDomain。CurrentDomain。BaseDirectory,fonts,MEIRYO。TTC));FontManager。RegisterFont(stream);Settings。EnableCachingtrue;Settings。EnableDebuggingfalse;container。Page(page{page。Size(PageSizes。A4);page。Margin(2,Unit。Centimetre);page。PageColor(Colors。White);page。DefaultTextStyle(xx。FontSize(14)。FontFamily(Meiryo));page。Content()。PaddingVertical(1,Unit。Centimetre)。Column(x{x。Item()。Table(table{table。ColumnsDefinition(columns{for(vari0;idt。Columns。Count;i){columns。RelativeColumn();}});table。Header(header{foreach(DataColumncolindt。Columns){header。Cell()。Element(CellStyle)。Text(col。ColumnName);}});foreach(DataRowrowindt。Rows){for(vari0;idt。Columns。Count;i){if(i7){byte〔〕qrCodeAsBitmapByteArrPngByteQRCodeHelper。GetQRCode(row〔i〕。ToString(),QRCodeGenerator。ECCLevel。Q,20,false);usingvarmsnewMemoryStream(qrCodeAsBitmapByteArr);table。Cell()。Image(qrCodeAsBitmapByteArr);}else{table。Cell()。Element(CellStyle)。Text(row〔i〕。ToString());}}}});});page。Footer()。AlignCenter()。Text(x{x。Span(Page);x。CurrentPageNumber();x。Span();x。TotalPages();});});});returndoc。GeneratePdf();}
  各种。net的调试工具用上,都只能证明内存只增不减,连pmap都用上了,发现下面的一个大文件的内存占用,并且很多,大体都是在65M左右。AddressKbytesRSSDirtyModeMapping00007f4d54000000655366553665536rw〔anon〕
  经过一天的测试,找不到具体的问,最后推测是生成Pdf后,生成的内存是非托管内存,GC回收不掉,每当有用户下载PDF时,就会积累内存,直到Pod崩掉。
  干不掉bug,就干掉需求吧,因为经过统计这个下载pdf的使用量很低,可以下掉功能。同时把这个问题给QuestPDF提了个issues。就准备躺平。QuestPDF回应很快,说注册字体只用注册一次就行,多次注册会重复累加字体,37到40行代码,只在服务启动时加载一次即可,经过测试果然有效果。
  在复盘时,总结,常规的思维在win下注册字体,多次注册不会让相同的字体保存多份,从而认知QuestPDF注册也是同理,造成下载一次就注册一次,造成内存积加,这也是为什么65M左右的内存一起在累加的原因。
  后来,我又思考了一下,如果做一个支持高并发,高性能的web服务,像下载Excel,PDF这些操作,是不能在后台生成的,因为用户的一个文件的体积和用户的数据是有关系的,大小很难控件,如果耦合在web服务端来做这件事,肯定是个雷。也有的建议是用其他服务或cli异步生成,然后放在云存储上让用户下载,这也是一种解决方案。
  我觉还是让web服务做自己擅长的事,提供数据,把文件生成组装操作转嫁给客户的浏览器来完成,这样既能减轻web服务的负载,又能充分利用客户端的资源,一举两得。

王的女人田朴珺嫁大30岁千亿老公,住10亿豪宅跻身名利场田朴珺80后演员之一,如今很少见到她出现在大银幕之上。为什么田朴珺很少出现在银幕之上了呢?其实这主要是因为现在的她重心已经不放在演艺圈中,而是放在了名利场上。对于田朴珺而言最令人津刘真老师去世三周年,老公辛龙发文哀悼我是爸爸,也学着当妈妈相信大家都还记得在三年前刘真去世的日子,当时很多人都不敢相信,尤其是刘真的老公辛龙几乎无法从悲痛中走出来,很多人也很担心辛龙的状态,害怕他再出现什么不好的事情那么她们的女儿就没有人马英九赴大陆活动,朱立伦国民党亲美!江启臣呼吁和美复交马英九计划在27日飞赴上海浦东国际机场,正式开始在大陆的活动,马英九除了祭祖之外,还会参加多个活动,马英九赴大陆期间,还有众多的青年学子同行,届时会在多个城市有互动。对于马英九赴大13世纪50年代,英国贵族改革运动爆发的原因是什么?历史开讲文白玉编辑子昂英国国王与大贵族之间矛盾的起因,有诸多方面是值得考究的,其中政治因素最为重要,影响也是最为直接。除此之外,经济因素的影响也是不可忽视。国王与贵族之间矛盾的起源中世纪的西欧国家,贵族子弟成为骑士,骑士制如何从辉煌走向没落文龙跃谭编辑龙跃谭摘要中世纪的欧洲是一个动荡的时代,而西欧骑士制是这个时代的一个重要组成部分。骑士制度是中世纪时期的一种身份认同和社会阶层,骑士作为高贵的战士阶层,在社会中扮演着重红军一个团突然消失在贵州境内,多次查找无果,67年后谜团被揭开相信很多人小的时候都喜欢看一些世界未解之谜类的书籍或故事,这些事件让我们见识到了很多超乎想象的内容,让我们惊叹于世界的广大与神奇。可是这些谜团却并非全部都是事实,它们之所以会叫未解众星何历历再现那一代学人的风采意趣众星何历历沈仲章和他的朋友们沈亚明著中华书局提起沈仲章这个名字,知道的人可谓寥寥无几。沈先生其实是中国现代文化史上一位颇富传奇性的人物,早在上世纪二三十年代,他先后求学任教于唐山交提质升级疏通家政梗阻来源经济日报近年来,随着产业规范化发展居民消费水平提高,我国家政服务市场迎来广阔的发展前景。与此同时,家政服务质量提升与规模扩张不匹配的情况也比较突出,存在着令群众头疼的诸多梗阻,人到中年,会喝酒不如会挑酒,这5款光瓶酒,你喝过吗?一辆再好的汽车,当车的行驶里程超过10万公里,那么驾驶的车速便要放缓,车内各零件要重新检修,就连投保的金额都要增加。同样人也是如此,当人到了中年,工作的强度要适当的降低,生活的重心花三百块在清迈五星级酒店体验美女按摩师泰式按摩,既痛苦也享受之前跟好友去泰国游玩,预定了一间高端酒店,酒店外面竟然有按摩价格牌,俩小时的服务费在二百左右。(此处已添加小程序,请到今日头条客户端查看)到泰国游玩的时候入住酒店才发现酒店也支持上江苏人请客怪象,梦之蓝拿不上台面,反倒青睐4款无名廉价酒地处江南水乡,粮食产量丰厚,江苏一直都是个不露声色的酿酒大省,别看当地人文文弱弱,酒圈里可是盛行着喝不过的小绵羊之称。作为江淮派白酒的发源地,江苏盛产的好酒不在少数,据说在当地,名
曾游记丨宁乡温泉来源华声在线华声见习记者曾冠霖长沙断崖式降温最适合泡温泉,但是去哪儿呢?看这里,宁乡灰汤温泉职工疗养院,从市区出发只需要一个小时。依山而建的温泉谷和无边际浴池,能同时带来视野和身体实地采访崖子镇50吨大金矿才发现,原来乳山从东到西山脉都是金子2023年3月18日山东省地矿局发布消息,山东威海乳山的崖子镇西涝口村探获一处50吨大型金矿。西涝口村北有一座牧牛山,这座牧牛山不高,海拔300米。这次发现的矿床位于牧牛山北东方向我国科考队通过多方配合监测冰川变化共谋美丽生态家园近日,由中国科学院大学中科院西北研究院青海大学三江源生态与高原农牧业国家重点实验室三江源生态保护基金会等多家机构联合组成的科考队,对黄河上游的阿尼玛卿山开展了综合科学考察。在阿尼玛实拍老挝姑娘在河边洗澡,河水很干净,尴尬难以启齿人们选择去老挝游玩,会发现当地很多美女都是直接在河里洗澡的。(此处已添加小程序,请到今日头条客户端查看)他们之所以来到这里组团洗澡,主要是当地十分的炎热,到河边洗澡,能够达到解暑纳这不是特效!湖北恩施舟行水上似悬浮只因河水太清澈2023年3月14日,湖北恩施,屏山村屏山旅游景区,游人在坐船游玩。在湖北省恩施土家族苗族自治州鹤峰县容美镇屏山村屏山旅游景区,这里的河水清澈见底,舟行水上如悬浮空中,美如画卷。杨中美之间极有可能暴发一埸科技经济战争!据美国(华尔街日报)3月18日的一篇报导称,一些美国硅谷科技公司的高管与美国国会的共和党和民主党议員,都一致反对中国参与美国的科技行业!这些人成立了一个叫(国会)山(硅)谷联论坛的青版财经小记者了解智慧停车智慧社区拥抱未来生活3月19日,青版财经小记者走进智慧停车头部企业松立集团参观研学。小记者们了解大数据下的智慧停车智慧社区等平台的建设,拥抱未来生活,初步认识已经上升为国家战略数字中国智慧城市建设。在如果我跑得比光更快,我会长生不老吗?大有学问长生不老一直是人类向往的梦想,随着科学技术的发展,人们开始探讨从根本上击败衰老的方法。在这个过程中,有人提出了一个有趣的问题如果我跑得比光更快,我会长生不老吗?让我们从科学Arbitrum空投到来一文带你详细了解Arbitrum是什么?Arbitrum是以太坊的乐观式Rollup扩容方案,有以下特性无需信任的安全性安全扎根于以太坊,任何人都可以确保正确的L2结果。若L2链完全宕机,仅凭以太数据传输检错技术CRCCRC简介数据在传输过程中可能会因为传输介质故障或外界的干扰而产生比特差错(使原来的0变为1,原来的1变为0),从而导致接收方接收到错误的数据。为尽量提高接收方收到数据的正确率,在风浪越大鱼越贵!华为宣布重要决定,美媒我们封锁了个寂寞华为是一家全球领先的信息通信技术解决方案供应商,其研发实力远超国人的想象。除了手机业务,华为在许多领域都有着出色的表现。在面对美国的无底线制裁和打压之下,华为依然能够从容应对,不断
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网