.net开发者的Blog

专注于 .net / .net core 的开发,与金融(期货)的实践

ASP.NET Core 2 High Performance 读书笔记,8~12章(完)

理解代码的执行与异步操作

书里主要介绍了一些基础的概念,泛型集合,序列化和哈希的情况,以及在某些情况下的性能比较。这部分内容,是可以自己实践的,一些其它相关性能书籍里也都会有介绍。
文中也提及一些性能上需要注意的地方:
1.避免使用反射(这个基本上都是常识了,不过该用还得用,记得使用时要缓存GetType(),GetMembers(),GetProperys()方法返回的对象)
2.避免使用正则表达式,至少,避免使用用户自己输入正则。
3.注意字符串拼接
4.避免使用动态类型(某些情况下,我还是比较喜欢用的,如果可以,使用匿名对象都比动态类型要好很多)
5.避免同步操作(文里主要是说在asp.net core 下的情况,用纯异步会提高吞吐量)
6.异常(捕捉异常时必须的,但自己的业务类尽量少抛出)

缓存与消息队列

书里主要还是对一些概念的东西做介绍,介绍的内容其它类似的书籍里也大多一样。至于对性能的效果,得看具体业务场景来说了。
对于缓存,在实际开发过程中,把握2点
1.缓存的数据有多少(量与命中率的平衡)
2.缓存什么时候更新/失效

消息队列则主要是项目和应用的业务逻辑流程上的优化了,这个需要在项目开始时就需要进行全盘的考虑。否则在发现热点问题后,再着手用队列方式去解决,就会面临项目的大改。

性能提升造成的不利影响

复杂度

为了性能,必然会对代码做修改,通常来说,软件需要在CPU,内存,算法上做平衡。提升性能(减少cpu消耗),通常会意味着内存的增加(加缓存,加中间临时存储),当内存的增加极限后,就必须在算法上做优化了(更换热点函数/模块的算法/代码,或在项目结构上做调整)。
加内存是最常见的方法,能解决80%的常见问题。不过当系统的访问指数级(10倍,100倍)的上升后,就得从架构方法做考虑。
书里介绍了一些方法。如,使用一些框架,特定的架构与对原有代码做重构。
架构方案,主要是比较微服务和整体架构,使用微服务后复杂度会有提升,可扩展性和性能也会得到提升。但业务开发的效率会降低,大家要视情况而定。不能盲目说微服务好就用,你一个访问量只在几百人的独立web站点,没必要搞成微服务。但一个大公司下面,哪怕一个再小的对外服务,也得按章接入公司SOA或者微服务体系里。

高性能的文化

路过,不做评论与笔记

性能的开销

其实还是软件工程里的平衡,平衡性能与代码的可维护性与开发的整体效率。

分布式调试

总结一句话,就是通过日志来调试分布式程序。
嗯,有本事你就通过断点的方式调分布式程序。

性能监控与分析

测试

主要介绍了一些测试的概念,这部分,一些书籍和blog里都会有相关介绍,书里没有过深入的介绍,大家可以先看看,然后再根据感兴趣的主题曲问度娘或者小冰。

DevOps

主要是说,大公司不缺。但还是推荐小公司上,可能初期会麻烦一些,但后期会感觉很轻松和舒服的。

技术前瞻

看看就行,根据自己的实际情况再深入的找对应的blog了解。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«   2019年3月   »
123
45678910
11121314151617
18192021222324
25262728293031
网站分类
文章归档

Powered By Z-BlogPHP 1.5.2 Zero

Copyright csharptools.cn Rights Reserved. 桂ICP备17007292号