战况
今年我的的编程之美之旅到这里就会止步了,回想上个星期满脑子都是各种Id,想了各种各样的优化技巧,最后在测试的时候一直在前20,加了缓存是前5。
然而在最终评审的时候还是败下阵来,仔细回想还是有很多改得不如人意的地方,最后一天也疲了,没有仔细审查和推敲。
最后的最后呢,我也就是个#39的炮灰渣渣啦。
评审数据
赛后查了下后台,发现评审数据是10对完全没有任何相同的id,这就导致了我那些加速的缓存没有任何用武之地,而且反而拖慢了查询速度。
群里有进决赛的说有84组用例,很多重复的id……我想说的是,这次大赛对于那些不重复id都比较慢的孩子们,连享受重复id的待遇都没有啊……心塞,可怜我的缓存机制。
tricks
赛后大家交流的时候发现,有很多技巧行的东西我都没有用到,比如查询API中的CC(一篇文章的引用数)属性,长链接什么的。
在下面的几个好孩子开源文件里,你可以看到,有很多队伍在各种可以优化的地方都下了很大的功夫,比如json库的效率,链接的保持,等等。
而我也就在缓存,组合查询上废了不少功夫,虽然初步测试看着效果很好,但是还是比不上这些全方位改进的队伍。
OpenSource
排名靠前的孩子们都是用的Python和C#多些,像我们这样用了Java的孩子,只有一队闯入了决赛。干巴爹~java
- #3 Python 最终文件是query_offset_extend.py https://github.com/a3616001/Mania
- #4 Python https://github.com/RainVision/BOP2016-semifinal
- #10 Java https://github.com/chenkaiyu1997/2016BOP_semifinal
- #11 Python https://github.com/dyslove123/2016_bop_semifinal
- #17 Java https://github.com/zxd2629546/BOP2016
- #23 C# https://bitbucket.org/CXuesong/juniper
- #39 Java 我们的,也厚颜无耻的放这里了,https://github.com/clumsycat/2016_BOP_Semifinal
- #118 C#https://github.com/kingium/BoP2016-daTHU
- # 不知道多少名的,C# https://github.com/Elecky/BOP2016