上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 39 下一页
摘要: 一:背景 1. 讲故事 如果你常翻看FCL的源码,你会发现这里面有不少方法借助了C/C++的力量让C#更快更强悍,如下所示: [DllImport("QCall", CharSet = CharSet.Unicode)] [SecurityCritical] [SuppressUnmanagedCo 阅读全文
posted @ 2020-05-29 08:21 一线码农 阅读(5181) 评论(20) 推荐(30) 编辑
摘要: 一:背景 1. 讲故事 去年阿里聚石塔上的所有isv短信通道全部对接阿里通信,我们就做了对接改造,使用阿里提供的.net sdk。 网址:https://help.aliyun.com/document_detail/114480.html 同事当时使用的是ons-.net v1.1.3版本,程序上 阅读全文
posted @ 2020-05-26 17:07 一线码农 阅读(3664) 评论(28) 推荐(24) 编辑
摘要: 一:背景 1. 讲故事 在前一篇大内存排查中,我们看到了Dictionary正在做扩容操作,当时这个字典的count=251w,你把字典玩的66飞起,其实都是底层为你负重前行,比如其中的扩容机制,当你遇到几百万甚至千万的大集合这个扩容机制还真的需要挖一下,免的入戏太深,难以自拔。 为了方便讲述,我准 阅读全文
posted @ 2020-05-25 07:56 一线码农 阅读(12723) 评论(13) 推荐(19) 编辑
摘要: 一:背景 1. 讲故事 前天写了一篇大内存排查在园子里挺火,这是做自媒体最开心的事拉,干脆再来一篇满足大家胃口,上个月我写了一篇博客提到过使用 对原来的 进行高强度压缩,将原来的List内存压缩了将近106倍,但是bitmap不是一味的好,你必须在正确的场景中使用,而不是闭着眼睛滥用,bitmap在 阅读全文
posted @ 2020-05-22 07:53 一线码农 阅读(3062) 评论(14) 推荐(13) 编辑
摘要: 一:背景 1. 讲故事 昨天继续还技术债,优化一轮后的程序拉到线上后内存继续忽高忽低,低的时候20G,高的时候30G,过了一会又下降了几个G,毫无疑问,程序中有什么集合或者什么操作占用了大量内存,所以准备在28,29G的时候抓dump分析分析。 二:解决思路 从快照中找问题就像看病一样,根据病象推测 阅读全文
posted @ 2020-05-20 18:17 一线码农 阅读(4187) 评论(30) 推荐(53) 编辑
摘要: 一:背景 1. 讲故事 高级语言玩多了,可能很多人对指针或者汇编都淡忘了,本篇就和大家聊一聊指针,虽然C 中是不提倡使用的,但你能说指针在C 中不重要吗?你要知道FCL内库中大量的使用指针,如 等等数不胜数,如例代码: 对,你觉得的美好世界,其实都是别人帮你负重前行,退一步说,指针的理解和不理解,对 阅读全文
posted @ 2020-05-16 09:54 一线码农 阅读(1480) 评论(7) 推荐(5) 编辑
摘要: 一:背景 1. 讲故事 下决心做好自媒体到现在有一个月了,关注我的兄弟应该知道我产出了不少文章,号里的粉丝也多起来了,我也尽最大努力做到有问必回,现在是基础的、高深的问题都接踵而来,可我也只是一只小菜鸟,想飞也飞不动了(┬_┬),昨天号里有位朋友被面试官问到可空类型的原理,回答的不好,面试官也是,面 阅读全文
posted @ 2020-05-14 08:44 一线码农 阅读(1845) 评论(10) 推荐(12) 编辑
摘要: 一:背景 1. 讲故事 在项目中摸爬滚打几年,应该或多或少的见过有人把异常当做业务逻辑处理的情况(┬_┬),比如说判断一个数字是否为整数,就想当然的用try catch 包起来,再进行 int.Parse,如果抛异常就说明不是整数,简单粗暴,也不需要写正则或者其他逻辑,再比如一个字符串强制转化为En 阅读全文
posted @ 2020-05-11 07:30 一线码农 阅读(27389) 评论(76) 推荐(127) 编辑
摘要: 一:背景 1. 讲故事 前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所以我觉得有必要整理一下,让大家少走弯路。 二:一些基础概念 1. 在哪下载 现在安装windbg越来 阅读全文
posted @ 2020-05-08 23:43 一线码农 阅读(6355) 评论(28) 推荐(56) 编辑
摘要: 一:背景 1. 讲故事 我们有一家top级的淘品牌店铺,为了后续的加速计算,在程序启动的时候灌入她家的核心数据到内存中,灌入完成后内存高达100G,虽然云上的机器内存有256G,然被这么划掉一半看着还是有一点心疼的,可怜那些被挤压的小啰啰程序😄😄😄,本以为是那些List,HashSet,Dic 阅读全文
posted @ 2020-05-06 21:50 一线码农 阅读(6288) 评论(40) 推荐(42) 编辑
摘要: 不知道何时开始,很多程序员喜欢用ToLower,ToUpper去实现忽略大小写模式的字符串相等性比较,有可能这个习惯是从别的语言引进的,大胆猜测下是JS,为了不引起争论,我指的JS是技师的意思~ 一:背景 1. 讲故事 在我们一个订单聚合系统中,每一笔订单都会标注来源,比如JD,Taobao,Eta 阅读全文
posted @ 2020-05-04 17:24 一线码农 阅读(6747) 评论(81) 推荐(62) 编辑
摘要: 大家在平时开发中大多都会遵循接口编程,这样就可以方便实现依赖注入也方便实现多态等各种小技巧,但这种是以牺牲性能为代价换取代码的灵活性,万物皆有阴阳,看你的应用场景进行取舍。 一:背景 1. 缘由 在项目的性能改造中,发现很多方法签名的返回值都是采用IEnumerable接口,比如下面这段代码: 2. 阅读全文
posted @ 2020-05-02 11:40 一线码农 阅读(2892) 评论(25) 推荐(13) 编辑
摘要: 如果你经常看开源项目的源码,你会发现很多Dispose方法中都有这么一句代码: ,看过一两次可能无所谓,看多了就来了兴趣,这篇就跟大家聊一聊。 一:背景 1. 在哪发现的 相信现在Mysql在.Net领域中铺的面越来越广了,C 对接MySql的MySql.Data类库的代码大家可以研究研究,几乎所有 阅读全文
posted @ 2020-04-30 21:35 一线码农 阅读(5226) 评论(13) 推荐(13) 编辑
摘要: 昨天看群里在讨论C 中的string驻留池,炒的火热,几轮下来理论一堆堆,但是在证据提供上都比较尴尬。虽然这东西很基础,但比较好的回答也不是那么容易,这篇我就以我能力范围之内跟大家分享一下 一:无处不在的池 开发这么多年,相信大家对‘池’ 这个概念都耳熟能详了,连接池,线程池,对象池,还有这里的驻留 阅读全文
posted @ 2020-04-29 08:23 一线码农 阅读(2168) 评论(4) 推荐(13) 编辑
摘要: 昨天发现线上试跑期的一个程序挂了,平时都跑的好好的,查了下日志是因为昨天运营跑了一家美妆top级淘品牌店,会员量近千万,一下子就把128G的内存给爆了,当时并行跑了二个任务,没辙先速写一段代码限流,后面再做进一步优化。 一: 背景 1. 背景介绍 因为是自己写的代码,所以我知道问题出现在哪里,如果大 阅读全文
posted @ 2020-04-27 07:41 一线码农 阅读(3566) 评论(16) 推荐(21) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 39 下一页