第一届淘宝并发编程比赛-多线程排序性能优化-阿里云开发者社区

开发者社区> boxti> 正文

第一届淘宝并发编程比赛-多线程排序性能优化

简介:
+关注继续查看

去年一粟在淘宝内部组织了第一届淘宝并发编程比赛。

具体比赛问题请移步这里:https://github.com/Skinney/WordSorter 查看。

里面已经有可运行的代码,在一粟的机器上(RMBP 2012: 2.7 GHz Intel Core i7)运行速度如下:

16:07:49 hugo-rmbp ~/Projects/hugozhu/WordSorter/Go $ go run main.go  128 sowpods.txt out.txt
WordSort finished in <strong>335 ms</strong>

16:07:19 hugo-rmbp ~/Projects/hugozhu/WordSorter/Java $ java Sort 128 sowpods.txt out.txt
Loading contents of sowpods.txt... 170ms
Sorting... 222ms
Writing results to out.txt... 135ms

Using 128 threads, 267751 words was sorted in <strong>528</strong> milliseconds.

Java落后很多, 但看实现I/O部分耗费了一半多的时间,我们可以来优化一下Java实现:提高一下I/O性能,或者试一下Fork/Join框架,请大家都试试,把优化结果贴上来比较。

代码可以上传到github或google code,taocode等地方,然后贴一个链接上来,实现不限语言。

感兴趣的朋友可以一起做一下,过段时间本网站会分享本届比赛前2名淘宝同学的代码,以及第一名的优化分享。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask
为什么要是用Callable和Future Runnable的局限性 Executor采用Runnable作为基本的表达形式,虽然Runnable的run方法能够写入日志,写入文件,写入数据库等操作,但是它不能返回一个值,或者抛出一个受检查的异常,有些需要返回值的需求就不能满足了。
1232 0
【转】nginx优化 突破十万并发
一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。
897 0
.NET数据库编程求索之路--4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(3)
4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(3)   作者:夏春涛 xchunta@163.com 转载请注明来源: http://www.cnblogs.com/SummerRain/archive/2012/07/25/2609144.
864 0
Java性能优化之编程技巧总结
1、慎用异常 在Java软件开发中,经常使用 try-catch 进行错误捕获,但是,try-catch 语句对系统性能而言是非常糟糕的。
833 0
SQL优化:组内排序取最大值
最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题。问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例 测试用例 --建表 create table testorder (id in...
1209 0
七大基本排序算法C/C++(已优化及测试)
七大基本排序算法 已通过VS2015环境测试 可能不是最优算法,但是比基本版更好 完整项目GitHub 地址:https://github.com/cugwyman/7-Sorts BubbleSort冒泡排序 //BubbleSort冒泡排序,复杂度O(n^2...
659 0
.NET数据库编程求索之路--4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(1)
4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(1)   4.1 解决方案框架 解决方案(.sln)包含以下几个项目: (1)类库项目HomeShop.DbUtility,数据访问实用工具; (2)类库项目HomeShop.Model,实体层; (3)类库项目HomeShop.DAL,数据访问层; (4)类库项目HomeShop.BLL,业务逻辑层; (5)WinForm项目HomeShop.WinForm,界面层。
784 0
Apache Flink 零基础入门(七):Table API 编程
本文主要包含三部分:第一部分,主要介绍什么是 Table API,从概念角度进行分析,让大家有一个感性的认识;第二部分,从代码的层面介绍怎么使用 Table API;第三部分,介绍 Table API 近期的动态。
1707 0
+关注
boxti
12535
10037
文章
1327
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载