2019年6月28日

基于c++的日志文件实现

摘要: 概述 所有的商业软件或线上系统都具有日志功能,因为日志信息提供了系统启动以来的重要的操作或状态迁移记录,是追踪各种异常错误的第一手资料。绝大部分系统的日志模块会自动保留历史日志文件,即:日志文件大小达到约定上限时,自动转储到一个新的历史文件,当前文件清空并继续记录新的日志信息,例如:假设当前日志文件 阅读全文

posted @ 2019-06-28 21:41 wangwenzhi2019 阅读(3134) 评论(0) 推荐(1) 编辑

2019年6月5日

基于多线程的并行快速排序算法实现

摘要: 基于多线程的并行快速排序算法实现 1. 快速算法(Quick Sort)介绍 快速排序(Quick Sort)是一种经典的排序算法,基于递归实现,由于其实现方式简单可靠、平均时间复杂度为O(nlogn) (最坏情况O(n^2)), 被广泛采用。一个QuickSort算法实现如下(基于c++): 下面 阅读全文

posted @ 2019-06-05 09:58 wangwenzhi2019 阅读(6841) 评论(0) 推荐(0) 编辑

2019年5月25日

为什么软件开发者应该关注CPU缓存

摘要: (这是一篇译文,原文链接 here ,内容及图片版权归原文所有. 水平有限,错误难免,恳请批评指正,请使用文明用语) 现代计算机系统的的内存访问速度远远跟不上不断增长的处理器运算速度,这使得处理器设计者们不得不添加高速缓存以弥补访问低速(和CPU相比)内存所带来的系统性能下降。在很多场景下,缓存的的 阅读全文

posted @ 2019-05-25 22:50 wangwenzhi2019 阅读(600) 评论(0) 推荐(0) 编辑

2019年5月20日

如何实现c语言版本的timeit()

摘要: 在上一篇博客《python计时函数timeit.timeit()使用小结》中介绍了python中timeit()及其用法,现在我们看看如何在c中实现类似功能. 可以考虑使用一个接受变参的宏(Variadic Macro)来实现,在这种定义方式中,用"..."表示形参,运行时所有传入的实参被内置标识符 阅读全文

posted @ 2019-05-20 18:56 wangwenzhi2019 阅读(242) 评论(0) 推荐(0) 编辑

python计时函数timeit.timeit()使用小结

摘要: Python提供了一个timeit.timeit()函数用于计算函数的运行时间,这使得我们在项目开发中很方便的设计profiling并根据结果做相应的优化, 其定义如下: 例如,假设我们在某个项目中要统计并存储访问过的url,一个可能的实现如下所示: 上面示例代码中用一个dict变量存储所有访问过的 阅读全文

posted @ 2019-05-20 10:35 wangwenzhi2019 阅读(1631) 评论(0) 推荐(0) 编辑

2019年4月20日

使用特殊字符实现console UI

摘要: 我们经常见到一些开源软件在安装或运行时,实现了某种程度上的基于Linux命令行终端的界面,使我们可以更直观的感受软件运行情况或进度, 例如下面的测试进度变化: 使用Python时,我们可以通过print()函数和某些特殊字符达到上面的效果。 先看一下Python的print()函数定义,从下面的帮助 阅读全文

posted @ 2019-04-20 20:45 wangwenzhi2019 阅读(594) 评论(0) 推荐(0) 编辑

2019年4月10日

一道算法面试题(Lowerest Common Ancestor) 的几种解法

摘要: LCA (Lowerest Common Ancestor)问题是指任意指定二叉树中的两个节点,求他们的最近共同祖先节点。例如在下图中,节点 7和4的LCA为2,6和4的LCA为5,2和8的LCA为3,等等。 我们用下列C语言数据结构表示树节点: 我们可以从数组创建二叉树,数组包含根据BFS(Bre 阅读全文

posted @ 2019-04-10 13:40 wangwenzhi2019 阅读(301) 评论(0) 推荐(0) 编辑

2019年4月8日

浅议自动化测试框架 --- 之脚本分类

摘要: 一个足够灵活的测试框架应该支持测试脚本分类/分组,并且在不改变框架代码的情况下可以随着项目的进展任意添加新的分类分组,本文用一种简单方式尝试实现上述目标。 首先,需要明确的是所有测试脚本应该以文本格式呈现,而不应是二进制格式或人眼不可读的某种私有格式。在此基础上,我们可以通过向脚本插入某些测试框架可 阅读全文

posted @ 2019-04-08 14:21 wangwenzhi2019 阅读(413) 评论(0) 推荐(0) 编辑

2019年4月4日

使用python正则表达式解析linux网络配置信息

摘要: Python内置的re模块可以使我们很方便的使用正则表达式处理字符串或文本,下面我们用一个小的练习来看一下如何使用re模块的match()/compile()等方法。 问题:如何使用python获取linux的网络配置请况并返回包含以下内容的列表:{$nic1_name:$nic1_ip, $nic 阅读全文

posted @ 2019-04-04 22:19 wangwenzhi2019 阅读(269) 评论(0) 推荐(0) 编辑

导航