深圳幻海软件技术有限公司 欢迎您!

  • 洞察 C# 终结队列引发的内存泄漏

    一、背景C#程序内存泄漏的诱发因素​有很多,但从顶层原理上来说,就是该销毁的 用户根​ 对象没有被销毁,从而导致内存中意料之外的对象无限堆积,导致内存暴涨,最终崩溃,这其中的一个用户根就是 终结器队列,这一篇我们就来看下如何让PerfView配合WinDbg双剑合璧。二

  • 关于多线程的一切:原子操作

    接上篇《​​关于多线程同步的一切:伪共享​​》原子,意味着不可切分的最小单元,程序中的原子操作指任务不可切分到更小的步骤。原子性(atomic)是一个可见性的概念:当我们称一个操作是atomic的,实际上隐含了一个对什么atomic的上下文。注意:我们说的是从线程视角观察不到完成一半的状态,而并非不

  • Spring Boot 引起的“堆外内存泄漏”排查及经验总结

    背景​为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于SpringBoot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSi

  • 聊聊 C# 中的多态底层 (虚方法调用) 是怎么玩的

    一、C#中的多态玩法1.一个简单的C#例子为了方便说明,我就定义一个Person类和一个Chinese类,详细代码如下:复制internalclassProgram{staticvoidMain(string[]args){Personperson=newChinese();person.SayHe

  • 手撸一个智能指针,你学会了吗?

    本文转载自微信公众号「程序喵大人」,作者程序喵。转载本文请联系程序喵大人公众号。估计大家面试过程中应该都会被问到C++11的shared_ptr是如何实现的,大家应该都能答出来引用计数的概念,但是如果要让你手写一个shared_ptr,你能写出来吗?最近,我写了一个简单的shared_ptr,在这里

  • Go 1.17正式发布,都有哪些新功能?

     Go1.17正式发布,此版本的编译器采用了一种新的函数参数和结果传递方式。官方称此次改进将Go程序的性能提升了大约5%,并将amd64平台的二进制包大小减少了大约2%,未来还计划支持更多平台。Go1.17增加了对Windows上64位ARM架构的支持,让Go开发者能够在更多设备上原生运行

推荐阅读