最近毕业在家找不到工作就打算学学react 然后做了个魔兽世界拍卖行的价钱查询器玩 但是遇到一个问题就是游戏他们给的拍卖行数据API并没有细化到每个物品 所以一下就直接丢过来一个将近10W行的json文件 之前我的方法后台默认十来分钟更新一次api 然后有需要的时候也可以手动更新一次 直接下载下来存在内存里面
查询物品因为数据实在有点多 而且要查找多条数据中符合的最低数值 我最早找了一个叫crossfilter的库 但是文档看的不太明白 只能做到filter出物品 并不能再sort价钱 然后试了下发现单纯for loop一遍的时间其实也没花多久 所以现在就直接for loop了。。 但是还是希望能加快查询的速度
现在做的差不多了 突然想起魔兽并不只是一个服务器。。 单单一个服务器的API就有15MB至少 那那么多服务器 难道全部存在内存里面 然后固定时间更新一次吗 而且待机下内存普遍150MB+ 查询几个物品就会增到两百多 不知道这是react的原因还是nodejs的原因 (刚接触react 感觉里面一直复制state会增加很多内存消耗吧?)
这是在我家电脑架的一个demo: http://wow.scitnet.com (希望我家电脑不会炸) 谢谢各位
放内存里就好了,内存这么便宜的东西,我办公室工作机器都32G内存。
谢谢 只做过学校的项目 对真实环境下的性能方面没啥概念 总感觉不能做太大 不能做太慢
文件处理方式 利用buffer 和 fs的Stream流搞定, 10w行json要是一个对象那就麻烦了,