空间换时间,内存、缓存就是典型的空间换时间的例子。利用内存缓存从磁盘上取出的数据,CPU请求数据直接从内存中获取,从而获取比从磁盘读取数据更高的效率。 时间换空间,当空间成为瓶颈时,切分数据分批次处理,用更少的空间完成任务处理。上传大附件时经常用这种方式。 分而治之,把任务切分,分开执行,也方便并行执行来提高效率。 异步处理,业务链路上有任务时间消耗较长,可以拆分业务,减少阻塞影响。常见的异步处理机制有MQ(消息队列),目前在互联网应用中大量使用。 并行,多个进程或者线程同时处理业务,缩短业务处理时间,比如我们在银行办理业务时,如果排队人数较多时,银行会加开柜台。 离用户更近一点,比如CDN技术,把用户请求的静态资源放在离用户更近的地方。 一切可扩展,业务模块化、服务化(同时无状态化)、良好的水平扩展能力。
算法对性能的影响 缓存对性能的作用 锁的问题 响应与吞吐 Performance Diagnostic Tools
内存缓存与响应缓存中间件 响应压缩 负载测试与压力测试
SQL语句优化 索引 分区、分表与分库 读写分离
延迟加载与贪婪加载 IQueryable与IEnumerable的区别 实体追踪 查询优化 标量函数