分析一个程序
来源:互联网 发布:刀路预览软件 编辑:程序博客网 时间:2024/06/16 17:09
程序来自http://wiki.woodpecker.org.cn/moin/MiscItems/2011-11-28
#!/usr/bin/pythonimport sysimport randomimport timeimport itertoolsimport operatorimport collections# 返回一个包含在指定范围内产生包含随机数的字典def g(length, typerange): return [{'type':random.randint(0,typerange),'data':'hello%s' % x } for x in xrange(length)]def f1(qrs): li=[] qrs.sort(key=operator.itemgetter('type')) for k,g in itertools.groupby(qrs,key=operator.itemgetter('type')): li.append({'type':k,'data':[i['data'] for i in g]}) return lidef f2(qrs): d = collections.defaultdict(list) for q in qrs: d[q['type']].append(q['data']) result = [{'type': k, 'data': v} for k, v in d.items()] return resultdef f3(qrs): new_list = {} for elem in qrs: new_list.setdefault(elem['type'], []).append(elem['data']) result = [{'type': k, 'data': v} for k, v in new_list.items()] return resultdef t(f, a): start = time.time() f(a) end = time.time() return end - startdef main(): l = 100000 #范围的上限 tr = 10 #步长 try: l = int(sys.argv[1]) except: pass try: tr = int(sys.argv[2]) except: pass print 'groupby %s' % t(f1,g(l,tr)) print 'defaultdict %s' % t(f2,g(l,tr)) print 'setdefault %s' % t(f3,g(l,tr))if __name__ == '__main__': main()
函数t()用来计算f()的运行时间。t()的参数f是要执行的函数。
用到的几个模块和函数
- 一个词法分析程序
- 一个程序的分析
- 分析一个程序
- 一个程序的汇编分析
- 一个java程序的分析
- 一个字母频率分析计算小程序
- 一个词法分析程序的实现
- 分析一个好玩的c语言程序
- 一个简单的词法分析程序
- 一个简单的词法分析程序
- 一个股票分析小程序及源代码
- 分析一个小程序的实现
- 分析日志的一个python程序
- 对一个程序在内存中的分析
- 一个简单的词频分析统计程序
- 分析一个好玩的c语言程序
- 对一个程序在内存中的分析
- 一个文本抽取分析的shell程序
- 服务器Java虚拟机(JVM)中的内存设置详解
- shell script 单引号和双引号
- 隐藏UITabBar
- 对于 Oracle 的 rownum 问题
- u-boot-2011.09在ST2410上启动流程分析
- 分析一个程序
- 如何实现对UITextField ,UITextView等输入框的 字数限制
- Hibernate POJO为什么要实现Serializable接口
- 求多项式的解
- ASIO 之 剖 析--(1) 初识 ASIO
- 面包屑导航
- 书摘---创业36条军规1:创业是怎么回事
- 批量删除GridView(DataGrid)选中项
- u-boot移植流程的C语言描述