推荐文章
-
PerfView专题 (第五篇):如何寻找 C# 托管内存泄漏
一:背景 前几篇我们聊的都是 非托管内存泄漏,这一篇我们再看下如何用 PerfView 来排查 托管内存泄漏 ,其实 托管内存泄漏 比较好排查,尤其是用 WinDbg,毕竟C#是带有丰富的元数据,不像C++下去就是二进制。 二:如何分析 PerfView 用的是权重占比来寻找可疑的问题函数,为了方便讲述,我们先上一段问题代码。 internal class Program { static void Main(string[] args) { Task.Run(Alloc1); Task.Run(Alloc2); T……2022-08-16 -
慢SQL,压垮团队的最后一根稻草!
什么是慢SQL,如何定位慢 SQL,今天我们就一起来学习一下吧! 一、什么是慢 SQL 什么是慢SQL?顾名思义,运行时间较长的 SQL 语句即为慢 SQL! 那问题来了,多久才算慢呢? 这个慢其实是一个相对值,不同的业务场景下,标准要求是不一样的。 我们都知道,我们每执行一次 SQL,数据库除了会返回执行结果以外,还会返回 SQL 执行耗时,以 MySQL 数据库为例,当我们开启了慢 SQL 监控开关后,默认配置下,当 SQL 的执行时长大于 10 秒,会被记录到慢 SQL 的日……2022-08-16 -
.NET性能优化-快速遍历List集合
简介 System.Collections.Generic.List是.NET中的泛型集合类,可以存储任何类型的数据,因为它的便利和丰富的API,在我们平时会广泛的使用到它,可以说是使用最多的集合类。 在代码编写中,我们经常需要遍历一个List集合,获取里面的得元素进行一些业务的处理。通常情况下,集合内的元素不是很多,遍历起来非常快。但是对于一些大数据处理,统计,实时计算等动辄数万、十万数据的List集合,如何快速的遍历它呢?这就是今天需要和大家分享的内容。 遍历方式 我们来看看不同遍历方式……2022-08-16 -
《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(13)-Fiddler请求和响应断点调试
1.简介 Fiddler有个强大的功能,可以修改发送到服务器的数据包,但是修改前需要拦截,即设置断点。设置断点后,开始拦截接下来所有网页,直到取消断点。这个功能可以在数据包发送之前,修改请求参数;在收到应答包,在js解析和浏览器渲染之前,修改返回结果。有了这个功能,开发者就可以修改不同参数测试server,同时也可以修改返回包测试自己的js函数,或测试页面渲染。使用者功能要用到fiddler的命令行。因为这个菜单里面是中断所有的请求 2.为什么要打断点呢? 2.1开发人员 对……2022-08-16 -
Kotlin协程解析系列(上):协程调度与挂起
Kotlin协程是学习Kotlin的重中之重,也是运用koitlin的关键。本篇文章主要介绍Kotlin协程的创建、协程调度与协程挂起部分内容,对相关内容进行细致解析。 vivo 互联网客户端团队- Ruan Wen 本文是Kotlin协程解析系列文章的开篇,主要介绍Kotlin协程的创建、协程调度与协程挂起相关的内容 一、协程引入 Kotlin 中引入 Coroutine(协程) 的概念,可以帮助编写异步代码。 在使用和分析协程前,首先要了解一下: 协程是什么? 为什么需要协程? 协程最为人称道的就是……2022-08-16 -
【机器学习基础】集成学习回顾及总结
之前有将集成学习中的随机森林、GBDT、XGBoost等算法进行一一介绍,明白了每个算法的大概原理,最近复习了一下李宏毅老师的集成学习的课程,忽然对集成有了更清晰的认识,这里做一个回顾和总结。 集成学习回顾及总结 集成学习从直观的意思来说,就是合众人之力来解决一个问题,而每个人所起的作用又不相同,最终把大家的力量进行“集成”,从而得到更优的方案。 在前面线性回归的误差分析中说到,误差来源于偏差bias和方差variance,而简单的模型通常具有较大的偏差,从而出现欠拟合……2022-08-16 -
uni-app 从0 到 1 制作一个项目,收藏等于学会
uni-app 是使用 vue.js 开发的所有前端应用框架,开发者编写的一套代码,可以发布到 ios、android、web ,以及各种小程序平台。 一、创建uni-app 1、hBuilderX 可视化创建 最便捷的就是使用 hbuilder 可视化创建项目,在点击工具栏里的文件 -> 新建 -> 项目: 选择uni-app类型,输入工程名,选择模板,点击创建,即可成功创建。 2、cli 脚手架创建 2.1、使用正式版 vue create -p dcloudio/uni-preset-vue my-project 2.2、使用 alpha 版 vue create -p dc……2022-08-16 -
MySQL更新锁表超时 Lock wait timeout exceeded
背景 最近在做一个订单的钉钉审批功能,钉钉审批通过之后,订单更新审核状态,然后添加一条入库,并且更新入库状态: // 订单审批通过 @Transactional(rollbackFor = Exception.class) public void orderPass() { // 更新订单审核状态 updateOrderAuditStatus(id); // 添加入库 addPutInStorage(id); // 更新订单入库状态 updateOrderStorageStatus(id); } 其中的添加入库是远程ERP入库,添加出库之后更新出库状态。因为ERP可能因为库存不足,会入库失败。但此时审……2022-08-16 -
Android 自定义View – 柱状波形图 wave view
前言 柱状波形图是一种常见的图形。一个个柱子按顺序排列,构成一个波形图。 柱子的高度由输入数据决定。如果输入的是音频的音量,则可得到一个声波图。 在一些音频软件中,我们也可以左右拖动声波,来改变音频的播放进度 本文举例的自定View,实现如下功能: 以柱状形式展示数据的大小 标明图形当前最中间的数据 可以横向拖动进度,进度就是让某个特定的数据居中展示 可以改变左右两边的柱子颜色 可以调整柱子的宽度 拖动完毕后监听当前进度 实现 首先创建类SoundWaveView继承……2022-08-16 -
聊聊客户档案模型的设计与管理
对于客户相关的系统来说,不管是偏向数据的CDP平台,还是偏向销售管理的CRM应用,其基础能力需要对客户的档案信息进行不断的维护,以提高客户数据的准确性。 可以简单,更需要复杂; 一、基础描述 围绕客户管理通常分为售前、售中、售后、三个核心阶段,即营销、销售、服务三个核心流程与策略,在之前的文章中有聊过CDP系统的设计,本篇从客户档案模型来看看设计上的细节; 首先说明在客户档案管理中的几个常用概念,先统一基本的共识,然后从开发的角度……2022-08-16