记一次 .NET 某企业采购平台 崩溃分析

## 一:背景 ### 1. 讲故事 前段时间有个朋友找到我,说他们的程序有偶发崩溃的情况,让我帮忙看下怎么回事,针对这种 crash 的程序,用 AEDebug 的方式抓取一个便知,有了 dump 之后接下来就可以分析了。 ## 二:Windbg 分析 ### 1. 为什么会崩溃 既然是程序的崩溃

记一次 .NET 某游戏服务后端 内存暴涨分析

## 一:背景 ### 1. 讲故事 前几天有位朋友找到我,说他们公司的后端服务内存暴涨,而且CPU的一个核也被打满,让我帮忙看下怎么回事,一般来说内存暴涨的问题都比较好解决,就让朋友抓一个 dump 丢过来,接下来我们用 WinDbg 一探究竟。 ## 二:WinDbg 分析 ### 1. 到底是

PerfView专题 (第十五篇): 如何洞察 C# 中的慢速方法

## 一:背景 ### 1. 讲故事 在 dump 分析旅程中,经常会遇到很多朋友反馈一类问题,比如: * 方法平时都执行的特别快,但有时候会特别慢,怎么排查? * 我的方法第一次执行特别慢,能看到慢在哪里吗? 相信有朋友肯定说,加些日志不就好了,大方向肯定是没问题的,但加日志的颗粒度会比较粗而且侵

记一次 .NET 某物流API系统 CPU爆高分析

## 一:背景 ### 1. 讲故事 前段时间有位朋友找到我,说他程序CPU直接被打满了,让我帮忙看下怎么回事,截图如下: ![](https://img2023.cnblogs.com/blog/214741/202307/214741-20230731153115090-546047217.pn

记一次 .NET某培训学校系统 内存碎片化分析

## 一:背景 ### 1. 讲故事 前些天有位朋友微信上找到我,说他们学校的Web系统内存一直下不去,让我看下到底是怎么回事,老规矩让朋友生成一个dump文件丢给我,看一下便知。 ## 二:WinDbg 分析 ### 1. 托管还是非托管 要想看托管还是非托管,可以用 `!address -sum

记一次 .NET某报关系统 非托管泄露分析

## 一:背景 ### 1. 讲故事 前段时间有位朋友找到我,说他的程序内存会出现暴涨,让我看下是怎么事情?而且还告诉我是在 Linux 环境下,说实话在Linux上分析.NET程序难度会很大,难度大的原因在于Linux上的各种开源工具主要是针对 C/C++, 和 .NET 一毛钱关系都没有,说到底

记一次 .NET 某电力系统 内存暴涨分析

一:背景 1. 讲故事 前些天有位朋友找到我,说他生产上的程序有内存暴涨情况,让我帮忙看下怎么回事,最简单粗暴的方法就是让朋友在内存暴涨的时候抓一个dump下来,看一看大概就知道咋回事了。 二:Windbg 分析 1. 到底是谁吃了内存 这个问题说的再多也不为过,一定要看清楚这个程序是如何个性化发展

某公司自动化测试3面

# 某公司自动化测试3面 > 仅供参阅,并不提供参考答案,上课的时候多数讲解过 > 算法题给了你一个参考,都是力扣上的 ## 一面 ```text 1. 自我介绍 2. 关于自动化:怎么做的,目前的进展,效果如何,遇到的困难 3. 你的框架搭建,最初是考虑了哪些因素去设计的 4. 如何维护自动化ca

算法学习笔记(3): 倍增与ST算法

倍增 目录倍增查找 洛谷P2249重点变式练习快速幂ST表扩展 - 运算扩展 - 区间变式答案倍增更多的用法优化矩形查询优化建图优化 DP作者有话说 倍增,字面意思即”成倍增长“ 他与二分十分类似,都是基于”2“的划分思想 那么具体是怎么样,我们以一个例子来看 查找 洛谷P2249 依据题面,我们知

vue中key使用的问题

前言 在vue要求在遍历的时候最好加上key,在使用过程中总有些疑问,在这里做下分析 1.不使用key的时候vue是怎么处理的 在vue2.x文档中有如下描述 key 的特殊 attribute 主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key

Java多线程-JUC-1(八)

前面把线程相关的生命周期、关键字、线程池(ThreadPool)、ThreadLocal、CAS、锁和AQS都讲完了,现在就剩下怎么来用多线程了。而要想用好多线程,其实是可以取一些巧的,比如JUC(好多面试官喜欢问的JUC,就是现在要讲的JUC)。JUC就是java.util.concurrent的

装饰器模式:让你的对象变得更强大

在日常开发中,当需要给一个现有类添加附加职责,而又不能采用生成子类的方法进行扩充时。例如,该类被隐藏或者该类是终极类或者采用继承方式会产生大量的子类。这时候,我们该怎么办呢?我们可以使用装饰器器模式来解决这个问题,**本文将从以下四个方面讲解装饰器器模式**。 - 简介 - 优缺点 - 应用场景 -

适配器模式:如何让不兼容的接口变得兼容

在软件开发中,我们经常会遇到这样的情况:我们需要使用一个现有的类或者接口,但它与我们系统的目标接口不兼容,而我们又不能修改它。这时候,我们该怎么办呢?大多数情况下我们都可以使用适配器模式来解决这个问题,**本文将从以下四个方面讲解适配器模式**。 - 简介 - 优缺点 - 应用场景 - Java 代

看我如何用定值 Cookie 实现反爬

摘要:本次案例,用定值Cookie实现反爬。 本文分享自华为云社区《我是怎么用一个特殊Cookie,限制住别人的爬虫的》,作者: 梦想橡皮擦 。 Cookie 生成 由于本案例需要用到一个特定的 Cookie ,所以我们需要提前将其生成,你可以直接设置一个固定的字符串,也可以使用 Python 加密

一条SQL如何被MySQL架构中的各个组件操作执行的?

摘要:一条SQL如何被MySQL架构中的各个组件操作执行的,执行器做了什么?存储引擎做了什么?表关联查询是怎么在存储引擎和执行器被分步执行的?本文带你探探究竟! 本文分享自华为云社区《一条SQL如何被MySQL架构中的各个组件操作执行的?》,作者:砖业洋__。 1. 单表查询SQL在MySQL架构中

文盘Rust -- tokio绑定cpu实践

tokio 是 rust 生态中流行的异步运行时框架。在实际生产中我们如果希望 tokio 应用程序与特定的 cpu core 绑定该怎么处理呢?这次我们来聊聊这个话题。

初探webAssembly

本文从为什么需要WebAssembly、WebAssembly的工作原理、哪些语言可用来创建WebAssembly模块、WebAssembly可以用在哪里 以及 怎么使用 几方面简要介绍了webAssembly。如果之前没有了解过webAssembly,可以做一些简要的了解。

go generate命令简介

最近在研究[kratos](https://github.com/go-kratos/kratos)的使用,发现在`kratos run`之前会先运行`go generate ./...`命令。 这个命令之前没怎么用过,所以决定学习下该命令的用法。 `go generate`是Go语言中的一个命令,

Python:灵活的开发环境

如果你接手了别人的代码工程,却发现对方使用的 python 版本或者依赖库都和你的环境不兼容时,怎么办?打算卸掉自己原来的那一套环境再重来吗?真麻烦!

Python:界面开发,wx入门篇

听说过使用python在网站爬虫,或者数据清洗,或者人工智能原型验证,但是用在GUI开发上倒是头一回。今儿就来瞧瞧怎么个玩法!