摘要: 原文发表于2016-08-03。 1. 用线程池执行异步任务 为了减少阻塞时间,加快响应速度,把无需返回结果的操作变成异步任务,用线程池来执行,这是提高性能的一种手段。 你可能要惊讶了,这么做不对吗? 首先,我们把异步任务分为两种: 务必成功执行的 不成功就放弃 显然大多数时候都是第一种。那么当你把 阅读全文
posted @ 2020-12-25 17:41 计算法 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2016-07-10。 问题背景 略谈服务端缓存设计 一文说到缓存不是必须的,因为数据库本身就利用了内存。但实际情况是缓存是大型网站的标配。 虽然经验显示RDBMS最快时只需0~1ms就能响应,不逊于专门的缓存,但是当压力增大时,性能的下降也是飞快的。随着业务的逐渐复杂、开发团队的逐渐扩大 阅读全文
posted @ 2020-12-25 17:40 计算法 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2016-01-11。 今天上午满屋子找了一个小时也找不到眼镜。这种不显眼的东西,如果戴上眼镜到处望或许能找到,但丢的就是眼镜啊…… 这么找不是办法,于是我定下来进行推理。简单分析注意到,眼镜的失踪,分为今早用了眼镜和今早没用眼镜两种情况。如果今早用了,应该就放在我上午的活动范围内;如果今 阅读全文
posted @ 2020-12-25 17:38 计算法 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2015-10-14。 大略谈一下,各位轻拍哦! 服务端性能优化,除了重构,最常用的手段就是缓存。缓存主要分为本地缓存和分布式缓存两种。 根据我们每日千万次访问的经验来看,缓存不是必须的。优化充足的情况下,SQL平均耗时1ms。这是因为命中了索引,并且命中了MySQL缓冲池(内存中)。如果 阅读全文
posted @ 2020-12-25 17:36 计算法 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2015-09-18。 ThreadLocal是个很爽的东西,线程安全,能当全局变量来用(别!)。 上一篇末尾提到ThreadLocal的妙用,这东西确实在框架实现中很常用。不过一定要小心啊。 先告诉大家一个安全秘诀:try-finally大法,百战百胜!(一定要在finally里清空Th 阅读全文
posted @ 2020-12-25 17:33 计算法 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2015-09-18。 熟悉Scala的人知道返回值是代码块的最后一句,一般不能提前返回。return关键字是用抛异常来实现的,这样就能提前脱离代码块了。 最近看Scala源代码,注意到它对return的高效实现,有趣。 ##Scala咋实现的? 抛的异常类是NonLocalReturnC 阅读全文
posted @ 2020-12-25 17:32 计算法 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2015-05-17。 概念 不可变对象(Immutable Object),就是状态始终不会改变的对象,例如值对象(Value Object),无状态的服务对象(Stateless Service Object)。 Java和Scala都是JVM语言,都经常用synchronized来做 阅读全文
posted @ 2020-12-25 17:30 计算法 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2015-04-16。 ###问题 我们写代码是喜欢从左到右一路写过去的,多流畅,多顺手啊! 考虑这种代码:返回某些数据的json形式。 大概会这么写: def getyou() = { Json(Map("a"->1, "b"->2)) } 我写出了获取数据的表达式Map("a"->1, 阅读全文
posted @ 2020-12-25 17:28 计算法 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2015-04-12。 当你采用Spring之类的框架,用了声明式事务,难道每一段需要事务的代码都必须写成一个bean method,再标上@Transactional? 未免太麻烦了,不信你瞧。假如你写了类似这样的Controller和Service (伪代码): class UserC 阅读全文
posted @ 2020-12-25 17:27 计算法 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 原文发表于2015-02-12。 网上介绍Java 8 lambda和集合新特性的代码太千篇一律了,我来提供些不一样的。虽然很简单,但也是工业级代码,不是网上抄来抄去的教学代码。权当给大家提供一个思路。 你想把Collection<T>转换成Collection<R>,或者复制、合并、排序,你可以用 阅读全文
posted @ 2020-12-25 17:25 计算法 阅读(71) 评论(0) 推荐(0) 编辑