一:背景 1.讲故事 在我分析的200+dump中,同样会遵循着28原则,总有那些经典问题总是反复的出现,有很多的朋友就是看了这篇一个超经典WinForm卡死问题的再反思找到我,说WinDbg拦截System_Windows_Forms_niSystem.Windows.Forms.Application+MarshalingControl..ctor总会有各种各样的问题,而且windbg也具有强侵入性,它的附加进程方式让很多朋友望而生畏! 这一篇我们再做一次反思,就是如何不通过WinDbg找到那个非主线程创建的控件,那到底用什么工具的?对,就是用Perfview的墙钟模式。 二:Pervie...

  ANQWri2eXZ2G   2023年11月05日   44   0   0 BooSystemWindowsBoowindowsSystem

一:背景 1.讲故事 在分析旅程中,总会有几例控制台的意外卡死导致的生产事故,有经验的朋友都知道,控制台卡死一般是动了快速编辑窗口的缘故,截图如下: 虽然知道缘由,但一直没有时间探究底层原理,市面上也没有对这块的底层原理介绍,昨天花了点时间简单探究了下,算是记录分享吧。 二:几个疑问解答 1.界面为什么会卡死 相信有很多朋友会有这么一个疑问?控制台程序明明没有messageloop机制,为什么还能响应窗口事件呢? 说实话这是一个好问题,其实Console之所以能响应窗口事件,是因为它开了一个配套的conhost窗口子进程,用它来承接UI事件,为了方便阐述,上一段定时向控制台输出的测试代码。...

一:背景 1.讲故事 前些天有位朋友找到我,说他生产上的程序有内存暴涨情况,让我帮忙看下怎么回事,最简单粗暴的方法就是让朋友在内存暴涨的时候抓一个dump下来,看一看大概就知道咋回事了。 二:Windbg分析 1.到底是谁吃了内存 这个问题说的再多也不为过,一定要看清楚这个程序是如何个性化发展的,可以使用!address-summary命令。 0:000>!address-summary --UsageSummary---------------RgnCount----------TotalSize-------%ofBusy%ofTotal Free2557dfb`064e1000...

  ANQWri2eXZ2G   2023年11月02日   45   0   0 d3windbgSystem2d2dwindbgd3System

一:背景 1.讲故事 前几天有位朋友微信上找到我,说他的程序会偶发性崩溃,一直找不到原因,让我帮忙看一下怎么回事,对于这种崩溃类的程序,最好的办法就是丢dump过来看一下便知,话不多说,上windbg说话。 二:WinDbg分析 1.到底是哪里的崩溃 对于一个崩溃类的dump,寻找崩溃点非常重要,常用的命令就是!analyze-v,输出如下: 0:006>!analyze-v CONTEXT:6fbdee65-(.cxr0x6fbdee65) eax=55d2ebffebx=5e5f04c0ecx=e8c434e8edx=cf8bc35besi=83008b05edi=7588000...

一:背景 1.讲故事 中秋国庆长假结束,哈哈,在老家拍了很多的短视频,有兴趣的可以上B站观看:https://space.bilibili.com/409524162,今天继续给大家分享各种奇奇怪怪的.NET生产事故,希望能帮助大家在未来的编程之路上少踩坑。 话不多说,这篇看一个.NET程序集泄露导致的CLR私有堆泄露的案例,这个泄露和JsonConvert有关,哈哈,相信你肯定比较惊讶! 二:WinDbg分析 1.到底是哪里的泄露 首先观察一下进程的提交内存的大小,即通过!address-summary观察。 0:000>!address-summary --UsageSummar...

我们只知道直接键入redis-cli启动命令的交互式,而这个对redis-cli来说绝对是九牛一毛,下面我逐一给大家演示下。   一:非REPL(ReadEvalPrintLoop)模式    通常我们都是使用REPL模式,就是连接上端口之后,发一条request再等待response这样一个loop的形式,如下所示: [root@localhostDesktop]redis-cli-h192.168.1.216 192.168.1.216:6379>setusernamejack OK 192.168.1.216:6379>setpa...

  ANQWri2eXZ2G   2023年11月02日   67   0   0 redisseddesktopredisseddesktop

和ToLookup。   从图中我们看到有四个ToXXX的方法,其中ToArray和ToList,我想大家用的是非常非常多,但是ToDictionary和ToLookup 不见得有多少人用了,但不能否认的是这些方法确实很有用。     不多废话了,直接如主题,我们有这样的一个实体,包含:票号,订单号,备注。 classTicket { ///<summary> ///票号 ///</summary> publicstringTicketNo{get;set;} ///<summary> ///订单号 ///&...

一:背景 1.讲故事 最近也挺奇怪,看到了两起CPU爆高的案例,且诱因也是一致的,觉得有一些代表性,合并分享出来帮助大家来避坑吧,闲话不多说,直接上windbg分析。 二:WinDbg分析 1.CPU真的爆高吗 这里要提醒一下,别人说爆高不一定真的就是爆高,我们一定要拿数据说话,可以用!tp观察下。 0:000>!tp logStart:132 logSize:200 CPUutilization:59% WorkerThread:Total:6Running:6Idle:0MaxLimit:10MinLimit:4 WorkRequestinQueue:0 ------------...

  ANQWri2eXZ2G   2023年11月02日   61   0   0 Threadingwindbg.netSystem线程池

一:背景 1.讲故事 前些天有位朋友找到我,说他的程序内存异常高,用vs诊断工具加载时间又太久,让我帮忙看一下到底咋回事,截图如下: 确实,如果dump文件超过10G之后,市面上那些可视化工具分析起来会让你崩溃的,除了时间久之外这些工具大多也不是用懒加载的方式,比如dotmemory会把数据全部灌入内存,针对这种dump,你没个32G内存就不要分析了,这也是windbg在此类场景下的用武之地。 闲话不多说,朋友的dump到了,赶紧分析一波。 2.到底是谁吃了内存 还是那句话,用!address-summary看下是托管内存还是非托管内存的问题。 0:000>!address-sum...

  ANQWri2eXZ2G   2023年11月02日   44   0   0 .net2d性能优化System小程序

一:背景 1.讲故事 前些天有位朋友找到我,说他生产上的程序有内存暴涨情况,让我帮忙看下怎么回事,最简单粗暴的方法就是让朋友在内存暴涨的时候抓一个dump下来,看一看大概就知道咋回事了。 二:Windbg分析 1.到底是谁吃了内存 这个问题说的再多也不为过,一定要看清楚这个程序是如何个性化发展的,可以使用!address-summary命令。 0:000>!address-summary --UsageSummary---------------RgnCount----------TotalSize-------%ofBusy%ofTotal Free2557dfb`064e100...

  ANQWri2eXZ2G   2023年11月02日   46   0   0 windbg.net数据库d3System

因为提供了丰富的linq操作,相当方便。   官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads。下载后,还提供了一个酷似msdn的帮助文档。 samus驱动:https://github.com/samus/mongodb-csharp/downloads。    下面就具体看看samus驱动,https://github.com/samus/mongodb-csharp/blob/master/examples/Simple/Main.cs上面提供了 一个简单的demo,大体上看看我们就...

  ANQWri2eXZ2G   2023年11月02日   146   0   0 linqmongodbSystem

故这几天看了下线程参考手册结合自己的心得整理一下放在博客上作为自己的学习笔记。    好了,我们知道“负载”是一个很时尚,很牛X的玩意,往大处说,网站需要负载,数据库需要负载。往小处说,线程也需要负载,面对海量的 用户请求,我们的单线程肯定扛不住,那么怎么办,一定要负载,所以说多线程是我们码农必须要熟练掌握的一门技术。   在framework中给我们提供了一个Threading命名空间,下面是一个msdn上不完整的截图: 在后面的系列中我也是主要整理这几个类的使用方法和应用场景。 一:Thread的使用   &nbsp...

  ANQWri2eXZ2G   2023年11月02日   43   0   0 延迟执行工作线程sed

怎么这么长时间都没写博客了,好吧,继续坚持,继续分享我的心得体会。   这个系列我们玩玩aforge.net,套用官方都话就是一个专门为开发者和研究者基于C框架设计的,这个框架提供了不同的类库和关于类库的 资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器人等领域,这个系列研究的重点 就是瞎几把搞下AForge.Imaging这个命名空间下面的东东,下载网址:http://www.aforgenet.com/framework/downloads.html    对了,不知道有多少公司是用得仕卡作为员工的福利卡,我...

  ANQWri2eXZ2G   2023年11月02日   43   0   0 List二值化验证码

   今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣。。。人生何尝不是这样呢???正好 ceo从美国带了干红回来,然后我就顺道开心的过了把瘾。。。。一个字。。。爽。。。。喝着有点多。。。到现在头还疼。。。。回来地铁上想这个 周末忙着找房子,书一点都没看,也没在博客上接着忽悠,想起了上篇博客有个哥们说普及普及DBCC,虽然有点迷迷糊糊的。。。看能不能写出点新 花样。。。。不管学什么语言,还是数据库,你得看的比人家深一层。。。最可悲的就是停留的在表层,这样每次版本升级后,出了些新花样,然后你 就觉得太他妈神奇了,可事实...

  ANQWri2eXZ2G   2023年11月02日   28   0   0 SQL数据bc

   wcf已经说到第六天了,居然还没有说到这玩意有几种通信模式,惭愧惭愧,不过很简单啦,单向,请求-响应,双工模式,其中的第二种“请求-响应“ 模式,这个大家不用动脑子都清楚,这一篇我大概来分析下。   一:“请求-响应“模式   如果你看了我上一篇的博文,你应该非常清楚这种类似“本地调用”的方式,wcf同样也分为“同步”和“异步”两种,不过不管是异步还是同步,最终都逃 不过是“请求-响应”这个事实,对吧。   1:同步方式   这种方式我想没什么好说的,前面几篇我已经说的非常清楚了,具体使用方法可以参考我的前面几篇文章。。。谢啦...

  ANQWri2eXZ2G   2023年11月02日   29   0   0 多线程发送邮件单向通信

一:背景 1.讲故事 前段时间搞了一个地方性民生资讯号,资讯嘛,都是我抄你的,你抄官媒的,小市民都喜欢奇闻异事,所以就存在一个需求,如何去定向抓取奇闻异事的地方号上的新闻,其实做起来很简单,用逻辑回归即可,这篇主要讨论如何去抓取,在C中大家都知道抓取通用的库是HtmlAgilityPack,但是这个库主流的做法是采用xpath提取网页内容,这就让我很不爽了,毕竟不熟悉莫名的抵抗哈,像我这个年纪的码农,被Jquery教育了至少5-6年,所以必须用类Jquery的方式,在python中有cquery做这件事情,那在C中有没有类似的方式呢?嘿嘿,万能的github上还真有。。。就是本篇介绍的CSQ...

  ANQWri2eXZ2G   2023年11月02日   31   0   0 htmljQuerygithub

一:背景 1.讲故事 前些天有位朋友找到我,说他们的程序有内存泄露,跟着我的错题集也没找出是什么原因,刚好手头上有一个7G+的dump,让我帮忙看下是怎么回事,既然找到我了那就给他看看吧,不过他的微信头像有点像二道贩子,不管到我这里是不是三道,该分析的还得要分析呀。😄😄😄 二:WinDbg分析 1.到底是哪里的泄露 这个非常简单,对用户态内存段做一个分组处理就明白了,可以用windbg的!address-summary观察便知。 0:000>!address-summary --UsageSummary---------------RgnCount----------Total...

  ANQWri2eXZ2G   2023年11月02日   36   0   0 windbg.netc#性能优化System
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~