随笔分类 -  性能优化

摘要:提到MemoryStream大家可能都不陌生,在编写代码中或多或少有使用过;比如Json序列化反序列化、导出PDF/Excel/Word、进行图片或者文字处理等场景。但是如果使用它高频、大数据量处理这些数据,就存在一些性能陷阱。 今天给大家带来的这个优化技巧其实就是池化MemoryStream的版本 阅读全文
posted @ 2023-01-03 09:29 InCerry 阅读(3317) 评论(7) 推荐(33) 编辑
摘要:前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下。读者的问题是这样的: 大佬您好,之前读了您的文章受益匪浅,我们有一个项目经常占用 7-8GB 的内存,使用了您推荐的ArrayPool以后降低到 4GB 左右,我还想着能不能继续优化,于是 du 阅读全文
posted @ 2022-12-06 09:43 InCerry 阅读(2597) 评论(3) 推荐(13) 编辑
摘要:## 译者注 本文是一篇不可多得的好文,MemoryPack 的作者 neuecc 大佬通过本文解释了他是如何将序列化程序性能提升到极致的;其中从很多方面(可变长度、字符串、集合等)解释了一些性能优化的技巧,值得每一个开发人员学习,特别是框架的开发人员的学习,一定能让大家获益匪浅。 ## 简介 我发 阅读全文
posted @ 2022-12-02 09:42 InCerry 阅读(8528) 评论(16) 推荐(39) 编辑
摘要:前几天笔者提交了关于FasterKvCache的性能优化代码,其中有一个点就是我把一些后续不需要继承的类设置为了sealed密封类,然后就有小伙伴在问,为啥这个地方需要设置成sealed? 提交的代码如下所示: 一般业务开发的同学可能接触密封类比较少,密封类除了框架设计约束(不能被继承)以外,还有一 阅读全文
posted @ 2022-11-28 09:27 InCerry 阅读(820) 评论(3) 推荐(7) 编辑
摘要:我们回顾一下上一篇文章中的内容,有一个朋友问我这样一个问题: > 我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗? 其实这个问题比较简单的是吧?Redis其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就 阅读全文
posted @ 2022-11-22 09:29 InCerry 阅读(3882) 评论(19) 推荐(36) 编辑
摘要:计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展。不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布式、横向的扩容系统,这听起来非常的美好,不过也带来了今天要说明的问题,分布式的节点越多,通信产生的成本就越大。 网络传输带宽变得越来越 阅读全文
posted @ 2022-11-07 11:12 InCerry 阅读(7460) 评论(46) 推荐(64) 编辑
摘要:在之前的文章中,我们介绍了dotnet在字符串拼接时可以使用的一些性能优化技巧。比如: 为StringBuilder设置Buffer初始大小 使用ValueStringBuilder等等 不过这些都多多少少有一些局限性,比如StringBuilder还是会存在new StringBuilder()这 阅读全文
posted @ 2022-11-04 10:49 InCerry 阅读(4405) 评论(10) 推荐(16) 编辑
摘要:简介 在之前的一篇文章.NET性能系列文章一:.NET7的性能改进中我们聊到Linq中的Min()和Max()方法.NET7比.NET6有高达45倍的性能提升,当时Benchmark代码和结果如下所示: [Params(1000)] public int Length { get; set; } p 阅读全文
posted @ 2022-10-28 09:23 InCerry 阅读(8631) 评论(18) 推荐(33) 编辑
摘要:简介 System.Collections.Generic.List<T>是.NET中的泛型集合类,可以存储任何类型的数据,因为它的便利和丰富的API,在我们平时会广泛的使用到它,可以说是使用最多的集合类。 在代码编写中,我们经常需要遍历一个List<T>集合,获取里面的得元素进行一些业务的处理。通 阅读全文
posted @ 2022-08-16 09:37 InCerry 阅读(8709) 评论(48) 推荐(58) 编辑
摘要:译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 原作者:Ayende Rahien 阅读全文
posted @ 2022-08-10 10:19 InCerry 阅读(818) 评论(3) 推荐(8) 编辑
摘要:译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 由于接下来的两篇较短,本文一起把它 阅读全文
posted @ 2022-08-09 09:39 InCerry 阅读(1176) 评论(10) 推荐(9) 编辑
摘要:## 译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。 原作者:Ayende Ra 阅读全文
posted @ 2022-08-08 09:41 InCerry 阅读(1119) 评论(7) 推荐(3) 编辑
摘要:## 前言 在现在许许多多的应用系统中,日志非常关键,它即是排查问题的强力工具,也是程序员居家旅行工作甩锅必备良品。 在团队中编码中,我们都要求对于那些会变更数据的接口、调用第三方的接口记录请求和响应参数,另外在关键的代码路径记录后续可供诊断的日志信息。 如果使用了微软官方的日志记录框架[Micr 阅读全文
posted @ 2022-08-01 09:58 InCerry 阅读(4448) 评论(15) 推荐(32) 编辑
摘要:简介 在上一篇.NET性能优化-推荐使用Collections.Pooled一文中,提到了使用Pooled类型的各种好处,但是在群里也有小伙伴讨论了很多,提出了很多使用上的疑问。 所以特此写了这篇文章,补充回答小伙伴们问到的一些问题,和遇到某些场景如何处理。 问题分析 以下就是这两天收集到比较常见的 阅读全文
posted @ 2022-06-07 08:43 InCerry 阅读(2816) 评论(15) 推荐(33) 编辑
摘要:## 简介 性能优化就是如何在保证处理相同数量的请求情况下占用更少的资源,而这个资源一般就是CPU或者内存,当然还有操作系统IO句柄、网络流量、磁盘占用等等。但是绝大多数时候,我们就是在降低CPU和内存的占用率。 之前分享的内容都有一些局限性,很难直接改造,今天要和大家分享一个简单的方法,只需要替 阅读全文
posted @ 2022-05-25 09:05 InCerry 阅读(6286) 评论(32) 推荐(69) 编辑
摘要:## 前言 这一次要和大家分享的一个Tips是在字符串拼接场景使用的,我们经常会遇到有很多短小的字符串需要拼接的场景,在这种场景下及其的不推荐使用`String.Concat`也就是使用`+=`运算符。 目前来说官方最推荐的方案就是使用`StringBuilder`来构建这些字符串,那么有什么更快内 阅读全文
posted @ 2022-05-11 08:41 InCerry 阅读(4094) 评论(20) 推荐(34) 编辑

点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题