一、背景C#程序内存泄漏的诱发因素有很多,但从顶层原理上来说,就是该销毁的 用户根 对象没有被销毁,从而导致内存中意料之外的对象无限堆积,导致内存暴涨,最终崩溃,这其中的一个用户根就是 终结器队列,这一篇我们就来看下如何让PerfView配合WinDbg双剑合璧。二
接上篇《关于多线程同步的一切:伪共享》原子,意味着不可切分的最小单元,程序中的原子操作指任务不可切分到更小的步骤。原子性(atomic)是一个可见性的概念:当我们称一个操作是atomic的,实际上隐含了一个对什么atomic的上下文。注意:我们说的是从线程视角观察不到完成一半的状态,而并非不
背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于SpringBoot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSi
一、C#中的多态玩法1.一个简单的C#例子为了方便说明,我就定义一个Person类和一个Chinese类,详细代码如下:复制internalclassProgram{staticvoidMain(string[]args){Personperson=newChinese();person.SayHe
本文转载自微信公众号「程序喵大人」,作者程序喵。转载本文请联系程序喵大人公众号。估计大家面试过程中应该都会被问到C++11的shared_ptr是如何实现的,大家应该都能答出来引用计数的概念,但是如果要让你手写一个shared_ptr,你能写出来吗?最近,我写了一个简单的shared_ptr,在这里
Go1.17正式发布,此版本的编译器采用了一种新的函数参数和结果传递方式。官方称此次改进将Go程序的性能提升了大约5%,并将amd64平台的二进制包大小减少了大约2%,未来还计划支持更多平台。Go1.17增加了对Windows上64位ARM架构的支持,让Go开发者能够在更多设备上原生运行