摘要: Valgrind:开源动态分析工具搭建框架1,总体的概念和定义: Valgrind是一个开源的动态分析工具搭建框架。Valgrind提供了很多工具来检测内存泄漏、线程bug以及分析程序性能并且能够自己创建新的分析工具。 Valgrind目前提供了六款工具,包括:一个内存错误检查器、两个线程错误检测器、一个cache和分支预测工具、一个调用图生成工具和一个栈分析工具。Valgrind可以运行在大多数Linux平台上,包括: X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux, PPC64/Linux, S390X/Linux, MIPS32/Linu.. 阅读全文
posted @ 2013-12-09 16:23 jiezhao 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 一:GDB是GNU开源组织发布的一个强大的程序调试工具(UNIX WINDOWS都可以)。一般来说,GDB主要帮助你完成下面四个方面的功能:1,启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2,可以让被调试的程序在你所指定的位置的断点处停住。(断点也可以是条件表达式)3,当程序被停住时,可以检查此时你的程序中所发生的事情。4,动态的改变你程序的执行环境。看一个简单的列子: 1 #include 2 3 int func(int n) 4 { 5 int sum = 0, i; 6 for (i = 0; i 23 int func(int n)4 ... 阅读全文
posted @ 2013-09-09 10:46 jiezhao 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 方法很简单:写log到比如app.log的文件中,然后再满足一定条件之后(比如文件的大小不超过多少bytes,文件的行数不超过多少count,或者每天生成一个日志文件)就会将满足条件的app.log 重命名。这样就可以实现每天生成一个日志文件的需求了。TimedRotatingFileHandler 介绍: TimedRotatingFileHandler类处于logging.handles 模块中,提供重命名磁盘上的日志文件(以某种形式) 官网上详细的介绍:http://docs.python.org/2.6/library/logging.html#timedrotatingfile... 阅读全文
posted @ 2013-06-03 11:09 jiezhao 阅读(14423) 评论(0) 推荐(0) 编辑
摘要: 未完待续 阅读全文
posted @ 2013-05-28 10:15 jiezhao 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 1,黑天鹅以及软件测试中的黑天鹅 在发现澳大利亚的黑天鹅之前,欧洲人认为天鹅都是白色的。所以说”黑天鹅“代表了一个小概率事件,它罕有发生,但一旦出现,就具有很大的影响力。“黑天鹅”有着高度不可能事件所应具备的三个特征:第一点是不可预知性;第二点是它所带来的影响是巨大的;第三点是,在此之后,人们总是试图编造理由来作解释,好让整件事情看起来不是那么的随意就发生了,而是事先能够被预测到的—— 通过这样那样的分析。(参考自百度百科) 那么什么是软件测试中的黑天鹅呢? 举个例子: 比如一个产品经过一系列测试工作之后,将此产品上线使用。用户在使用该产品后发现并上报了一个bug后,测试人员对其进... 阅读全文
posted @ 2013-05-23 10:08 jiezhao 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 1,使用模块getopt 看个例子:import getopt,sys__version__ = '1.0.0'_debug = 0def main(): try: opts,args = getopt.getopt(sys.argv[1:], 'ho:vd', ['help','output=']) except getopt.GetoptError,e: print str(e) usage() sys.exit() output = False for o,a in opts: ... 阅读全文
posted @ 2013-05-20 14:53 jiezhao 阅读(1560) 评论(0) 推荐(0) 编辑
摘要: 简单介绍就不说了,官网上都是有的。http://webpy.org/下面主要介绍一个我学习了web.py官网介绍之后自己写的一个小网站。未完待续 阅读全文
posted @ 2013-05-20 10:31 jiezhao 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1,Siege是一个HTTP压力测试和评测工具,可以根据配置对一个web站点进行多用户的并发访问,记录每个用户所请求过程的响应的时间,并在一定数量的并发访问下重复进行。下载:http://www.joedog.org/siege-home/安装:tar -xzf *.gz./configuremakemake install安装后:[root@cdntest-6 ~]# siegeSIEGE 2.74Usage: siege [options] siege [options] URL siege -g URLOptions: -V, --version ... 阅读全文
posted @ 2013-05-15 13:58 jiezhao 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 1,Memoizing(自动缓存) 话不多说,看个例子。import time,hashlib,picklecache = {}def is_obsolete(entry,duration): return time.time() - entry['time'] > durationdef compute_key(function,args,kw): key = pickle.dumps((function.func_name,args,kw)) return hashlib.sha1(key).hexdigest()def memoize(duration=10): . 阅读全文
posted @ 2013-05-14 14:36 jiezhao 阅读(6568) 评论(0) 推荐(0) 编辑
摘要: 1,列表推导(没当要对序列中的内容进行循环处理时,就应该尝试使用列表推倒) 在python中编写如下的代码是让人痛苦和不高效已经简洁美观的。numbers = range(10)evens = []for i in numbers: if i % 2 == 0: evens.append(i)print evens 毫无疑问,在python中它确实会使得程序的执行速度变得慢了(它使解释程序在每次循环中都要确定序系中哪一部分被修改) 列表推倒是这种场景下的争取选择,它使用编排好的特性对前述语法中的一部分进行了自动化处理: events = [i for i in r... 阅读全文
posted @ 2013-05-13 13:39 jiezhao 阅读(268) 评论(0) 推荐(0) 编辑