发布于: 修改于: 雪球转发:0回复:64喜欢:27
这段时间理杏仁的计算服务器时不时出现资源被消耗完导致服务器挂的情况,本想着多花点钱将计算服务器从4核8GB升级到8核16GB,CPU从共享型升级到独算型,一看5年又要上万,忍了忍,先看看代码再说。一看不得了,虽然以前重构了好几次,但优化还是做的不够,以前的代码怎么看怎么不顺眼。一气之下又开始重新写。主要做了以下几点优化:

1. 全面摒弃lodash,仅仅保留几个es6实现起来比较麻烦的utility函数。lodash虽然简化了很多代码,但用久了,保护性太强,代码出错不易发现。在亿级的运算中,这类保护型代码会降低性能。

2. 减少所有不必要的查询,提前为量大的查询建立索引。

3. 减少sort一类函数,能消灭多少消灭多少,用好Mongo的索引直接减少对数据结果的sort。

4. int类型用于比较性能远强于date类型。
5. 控制好缓存,在缓存用于查询的目的完成后立马销毁。
6. 分布式的计算中的单进程计算逻辑并非处理的越多越好,试过后发现,适当分散,计算速度只是略微下降,但内存损耗会等比例减少。

经过几天奋战,A股整个收盘后涉及到所有A股、行业、指数、基金、可转债的计算原本需要六十多分钟的计算控制到了四十五分钟内,同时CPU和内存保持稳定,还有富足资源。[烟花]

精彩讨论

浮云越野04-02 23:31

怪不得阿里云的业绩起不来

流浪行星04-03 12:12

我刚打赏了这个帖子 ¥100,也推荐给你。加油干

美丽的邂逅04-03 07:44

CEO+CTO,跟我公司老板同样的风格。牛逼!总感觉哪天高攀不上了,当你成为牛逼人物时,曾经一起喝过茶,就成了我的谈资了。

楚薰04-02 23:29

真想把膝盖给你,我以后坐轮椅。

煤油铜金04-02 23:46

8核 16G 现在的价格其实也不算贵。

全部讨论

04-02 23:31

怪不得阿里云的业绩起不来

04-03 07:44

CEO+CTO,跟我公司老板同样的风格。牛逼!总感觉哪天高攀不上了,当你成为牛逼人物时,曾经一起喝过茶,就成了我的谈资了。

04-02 23:46

8核 16G 现在的价格其实也不算贵。

04-03 00:10

服务端也用 JavaScript ?好用吗,很少见啊

04-03 12:12

我刚打赏了这个帖子 ¥100,也推荐给你。加油干

04-02 23:29

真想把膝盖给你,我以后坐轮椅。

04-03 00:04

后端是用node来写的吗

Bing大真价投……

04-02 23:31

关键是你要做个自动扩缩容,流量大的时候多用机器,流量小的时候减少机器,总共开销会少很多的

04-03 08:45

提了上百条反馈,28年到期的用户点赞,这个网站值得冲,和你们一起迭代进步。