随笔分类 -  C#

摘要:国内文章 一个程序员的编年史 https://www.cnblogs.com/lunacy/p/18117213 作者拥有15年软件开发经验,曾在多家公司工作,项目和团队起伏充满变数。2007年,在太皓电子担任.net工程师,参与开发远程教育系统,因一行代码节省了5万元,但项目最终未成功。2008年 阅读全文
posted @ 2024-04-11 21:30 InCerry 阅读(887) 评论(0) 推荐(3) 编辑
摘要:今天看到微软研究院开源了一个新的C#项目,叫Garnet,它实现了Redis协议,可以直接将Redis替换为Garnet,客户端不需要任何修改。根据其官网的信息,简单的介绍一下它。 开源仓库地址:https://github.com/microsoft/garnet 文档地址:https://mic 阅读全文
posted @ 2024-03-19 19:57 InCerry 阅读(7511) 评论(33) 推荐(54) 编辑
摘要:背景 之前在.NET 性能优化群内交流时,我们发现很多朋友对于高性能网络框架有需求,需要创建自己的消息服务器、游戏服务器或者物联网网关。但是大多数小伙伴只知道 DotNetty,虽然 DotNetty 是一个非常优秀的网络框架,广泛应用于各种网络服务器中,不过因为各种原因它已经不再有新的特性支持和更 阅读全文
posted @ 2024-02-26 08:13 InCerry 阅读(455) 评论(6) 推荐(6) 编辑
摘要:译者注 在上周我就关注到了在github上有1brc这样一个挑战,当时看到了由Victor Baybekov提交了.NET下最快的实现,当时计划抽时间写一篇文章解析他的代码实现,今天突然看到作者自己写了一篇文章,我感觉非常不错,在这里分享给大家。 这篇文章是关于.NET开发者Victor Baybe 阅读全文
posted @ 2024-01-15 08:06 InCerry 阅读(6748) 评论(20) 推荐(71) 编辑
摘要:首先来假设这样一个业务场景,大家对于飞机票应该不陌生,大家在购买机票时,首先是选择您期望的起抵城市和时间,然后选择舱等(公务舱、经济舱),点击查询以后就会出现航班列表,随意的点击一个航班,可以发现有非常多组价格,因为机票和火车票不一样,它的权益、规则更加的复杂,比如有机票中有针对年龄段的优惠票,有针 阅读全文
posted @ 2023-10-16 11:03 InCerry 阅读(4708) 评论(7) 推荐(39) 编辑
摘要:前言 书接上回,我们讨论了在.NET8中新增的UnsafeAccessor,并且通过UnsafeAccessor访问了私有成员,这极大的方便了我们代码的编写,当然也聊到了它当前存在的一些局限性,那么它的性能到底如何?我们今天就来实际测试一下。 测试代码 话不多说,直接上代码,本次测试代码如下: us 阅读全文
posted @ 2023-09-20 08:50 InCerry 阅读(2322) 评论(13) 推荐(26) 编辑
摘要:前言 前几天在.NET性能优化群里面,有群友聊到了.NET8新增的一个特性,这个类叫UnsafeAccessor,有很多群友都不知道这个特性是干嘛的,所以我就想写一篇文章来带大家了解一下这个特性。 其实在很早之前我就有关注到这个特殊的特性,但是当时.NET8还没有正式发布,所以我也没有写文章,现在. 阅读全文
posted @ 2023-09-18 09:39 InCerry 阅读(3356) 评论(15) 推荐(31) 编辑
摘要:## 译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Resh 阅读全文
posted @ 2023-07-13 09:47 InCerry 阅读(702) 评论(0) 推荐(3) 编辑
摘要:## 前言 最近,我在微信公众号和博客园分享了一篇关于[.NET微服务系统迁移至.NET 6.0的故事](https://www.cnblogs.com/InCerry/p/microservice-migration-net-6.html)的文章,引起了许多读者的关注。其中,许多人对基于 Open 阅读全文
posted @ 2023-04-17 09:02 InCerry 阅读(10094) 评论(40) 推荐(101) 编辑
摘要:在之前的一篇文章《看我是如何用C#编写一个小于8KB的贪吃蛇游戏》中,介绍了在.NET Core 3.0的环境下如何将贪吃蛇游戏降低到8KB。不过也有很多小伙伴提出了一些疑问和看法,主要是下面这几个方面: .NET Core 3.0可以做到这么小,那么.NET7表现会不会更好? 不敢在生产中用这样的 阅读全文
posted @ 2023-01-16 10:01 InCerry 阅读(1694) 评论(17) 推荐(17) 编辑
摘要:译者注:这是Michal Strehovský大佬的一篇文章,他目前在微软.NET Runtime团队工作,主要是负责.NET NativeAOT功能的开发。我在前几天看到这篇文章,非常喜欢,虽然它的内容稍微有点过时(还是使用的.NET Core 3.0),不过其中的一些编程技巧和思维方式很受用,特 阅读全文
posted @ 2023-01-12 09:34 InCerry 阅读(5943) 评论(47) 推荐(105) 编辑
摘要:提到MemoryStream大家可能都不陌生,在编写代码中或多或少有使用过;比如Json序列化反序列化、导出PDF/Excel/Word、进行图片或者文字处理等场景。但是如果使用它高频、大数据量处理这些数据,就存在一些性能陷阱。 今天给大家带来的这个优化技巧其实就是池化MemoryStream的版本 阅读全文
posted @ 2023-01-03 09:29 InCerry 阅读(2794) 评论(7) 推荐(32) 编辑
摘要:前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下。读者的问题是这样的: 大佬您好,之前读了您的文章受益匪浅,我们有一个项目经常占用 7-8GB 的内存,使用了您推荐的ArrayPool以后降低到 4GB 左右,我还想着能不能继续优化,于是 du 阅读全文
posted @ 2022-12-06 09:43 InCerry 阅读(2409) 评论(3) 推荐(13) 编辑
摘要:## 译者注 本文是一篇不可多得的好文,MemoryPack 的作者 neuecc 大佬通过本文解释了他是如何将序列化程序性能提升到极致的;其中从很多方面(可变长度、字符串、集合等)解释了一些性能优化的技巧,值得每一个开发人员学习,特别是框架的开发人员的学习,一定能让大家获益匪浅。 ## 简介 我发 阅读全文
posted @ 2022-12-02 09:42 InCerry 阅读(6885) 评论(16) 推荐(39) 编辑
摘要:前几天笔者提交了关于FasterKvCache的性能优化代码,其中有一个点就是我把一些后续不需要继承的类设置为了sealed密封类,然后就有小伙伴在问,为啥这个地方需要设置成sealed? 提交的代码如下所示: 一般业务开发的同学可能接触密封类比较少,密封类除了框架设计约束(不能被继承)以外,还有一 阅读全文
posted @ 2022-11-28 09:27 InCerry 阅读(778) 评论(3) 推荐(7) 编辑
摘要:最近有一个朋友问我这样一个问题: 我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗? 其实这个问题比较简单的是吧?Redis其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就可以使用内存RAM存储,把放Re 阅读全文
posted @ 2022-11-15 09:12 InCerry 阅读(1292) 评论(10) 推荐(15) 编辑
摘要:最近.NET7.0和C#11相继发布,笔者也是第一时间就用上了C#11,其中C#11的有一个更新能解决困扰我多年的问题,也就是文章的标题原始字符串。 在使用C#11的原始字符串时,发现的一些有意思的东西,超出了我原本对它的期待,话不多说,我们一起来看看。 多年的困扰 我不知道大家有没有写过这样的代码 阅读全文
posted @ 2022-11-14 09:41 InCerry 阅读(1532) 评论(16) 推荐(11) 编辑
摘要:我记得大约在半年前,有个朋友问我一个问题,现在有一个选型: 一个性能敏感场景,有一个集合,需要确定某一个元素在不在这个集合中,我是用数组直接Contains还是使用HashSet<T>.Contains? 大家肯定想都不用想,都选使用HashSet<T>,毕竟HashSet<T>的时间复杂度是O(1 阅读全文
posted @ 2022-11-11 09:26 InCerry 阅读(1366) 评论(8) 推荐(14) 编辑
摘要:之前有听到说Docker支持Wasmtime了,刚好.NET7也支持WASM,就带大家来了解一下这个东西,顺便试试它怎么样。 因为WASM(WebAssembly) 一开始是一个给浏览器的技术,比起JS解释执行,WASM能用于提升浏览器的用户体验,因为在一些场景中它有着比JS更好的性能。 大家可以将 阅读全文
posted @ 2022-11-10 10:35 InCerry 阅读(2280) 评论(17) 推荐(16) 编辑
摘要:计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展。不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布式、横向的扩容系统,这听起来非常的美好,不过也带来了今天要说明的问题,分布式的节点越多,通信产生的成本就越大。 网络传输带宽变得越来越 阅读全文
posted @ 2022-11-07 11:12 InCerry 阅读(6696) 评论(45) 推荐(62) 编辑