自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (25)
  • 收藏
  • 关注

原创 c++如何自动生成变量名

最近在完善当前项目指针自动管理释放的问题,尽量避免代码里面任何一个退出的地方都要亲笔写一遍释放,以后谁不小心加了个return就变成内存泄露了,所以类似智能指针的做法来自动管理指针,释放资源。malloc指针的自动管理代码:class _AutoFree{void *pt;private:void operator=(const _AutoFree& _at){};publ

2015-11-09 17:59:02 2598

原创 chrome设置UA

不用插件,chrome本身就带打开页面按F12点击Hide drawer ,就是 ">三"  这个图标选择User Agent下拉选择UA,然后点击  spoof user agent DOWN。

2015-09-12 16:56:41 5184

原创 MFC的coredump文件以及调试

不要关闭系统弹出的“关闭程序”的对话框,保持现场用procexp_V15.40.0.0.4202571463.exe,找到正core的当前进程,右键   create dump -> Create Full Dump ...拷贝dmp文件到开发环境的exe目录下双击打开运行

2015-09-11 18:44:50 686

原创 搭建rabbitmq集群

网上有很多教程,可是步骤都缺的漏的,或者太笼统环境:Linux mqslave 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linuxgcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)ncurses-5.7.

2015-06-18 08:53:04 5771

原创 [细节扣扣]inline那些事

给个简单的例子:test1.h:void run();test1.c:inline void run(){ do sth. }test2.c:#include "test1.h"int main(){  run();  return 0;}分别用gcc 和 g++ 执行gcc test1.c test2.cg++ test1.c test2.c

2015-06-12 23:01:51 933

原创 win7环境下编译rabbitmq-c

这东东也蛮折腾,本来俺在Linux下干了几年了,现在回到win7,也是工作内容的需要啊,跨语言间选择队列服务器还是挺不错的。win7 64bit下载安装  cmake 3.2.3  visual studio 2008下载源码包 rabbitmq-c-0.6.0.tar.gz直接上图记得把ssh的勾去掉,如果你不想装并且安全性不要求的情况下   然后去到,打开 ra

2015-06-05 15:54:41 1622 1

原创 tcp短连接压爆

最近针对TIME_OUT状态进行进一步的研究,对于服务器上大量短连接导致的偶然异常问题,很多人第一想法就是先配置tcp_tw_recycle来快速解决问题,但我却不是很同意这么干,考虑到主动方TIME_OUT的2MSL时间,如果快速回收可能会导致偶然的新连接异常问题,这种问题会埋下伏笔而且可能以后更难查。测试程序比较简单,就是for循环无sleep的连接某服务器,在socket的TIME_OU

2015-05-30 17:56:55 126

原创 请别在代码里面hardcode

今天又遇到同事在对历史悠久的代码进行bug排查,结果看到了一些类似***>2的逻辑判断,当场也就懵了,完全不知道它代表啥业务情形!群里面几十个同事包括不少老员工都在,可是就不能给于明确的解答。当然针对这种情况,可以使用VCSLog和VCSAnnotate来对代码的log进行追溯,然后看下是哪个分支合并的,然后继续往前查,也许你找到了源头,并看到注释说是哪个bug或者哪个需求所以加了这段逻辑,但

2015-05-30 14:43:43 3608

原创 bool返回值的函数如果不return会咋样

bool try_ret_bool(int flag){    if (flag == 0) return true;}测试程序:try_ret_bool(0) 毫无疑问返回true,控制之内try_ret_bool(1) 返回?接下去各种试验:int val = is_existed(1) 发现返回的是22,究竟是啥原因呢?看看汇编吧,   0x0804964

2015-05-30 14:21:45 4115

原创 bool返回值的函数如果不return会咋样

bool try_ret_bool(int flag){    if (flag == 0) return true;}测试程序:try_ret_bool(0) 毫无疑问返回true,控制之内try_ret_bool(1) 返回?接下去各种试验:int val = is_existed(1) 发现返回的是22,究竟是啥原因呢?看看汇编吧,   0x0804964

2015-05-30 11:34:07 799

原创 symlink在ln的过程中究竟占用了多少耗时

今天看到群里的童鞋们在讨论ln命令的使用,天花乱坠说到了symlink,有同学用估算的口气说symlink耗时很低的,肯定ln总耗时是symlink的好几百倍,他猜中了吗?现在针对ln -s ~/install install来验证下strace -tt -T输出:14:08:20.190334 execve("/bin/ln", ["ln", "-s", "/home/linxp/ins

2015-01-14 14:43:31 1001

原创 对字典的value排序

最近在研究热门词汇统计与排序,

2014-08-03 22:28:21 130

原创 from a import * 属于深拷贝还是浅拷贝

a.pya = [1, 2, 3, 4, ['a', 'b']]

2014-06-24 22:34:53 659

原创 gdb core 调试 - python调用c库

#include  #include   int foo(int a, int b)  {    printf("Your input %i and %i\n", a, b);    fflush(stdout);  abort();  return a + b;  }

2014-06-22 11:27:04 2529

原创 演示coredump后出现?的情况

void run(){  int m = 2;}int main(){  int *m = new int;  run();  return 0;}

2014-06-02 15:27:33 550

转载 visio 热身资料

如何用Visio绘制流程图 http://www.doc88.com/p-2314710872268.html

2014-05-28 14:46:36 367

原创 走读代码 思考

感觉走读代码很需要讲究技巧,会qian会上的时间与人的控制

2014-05-28 11:34:37 656

原创 gcc omit-frame 如何找到函数的第一个参数

void run(int n){  int m = n;}int main(){  run(1000);  return 0; }08048374 : 8048374: 55                   push   %ebp 8048375: 89 e5                mov    %esp,%ebp 804

2014-05-27 09:04:47 584

原创 memcache研究笔记 之 socket接入与工作线程分发Model

// 服务器端  struct event_base* main_base;  static const char MESSAGE[] ="Hello, World!\n";  typedef struct{  int index;  int notify_recv_fd;  int notify_send_fd;  struct event_base *base;

2014-04-27 22:15:12 513

原创 代码Profile

#ifdef DEBUG_CODES_TIMEvoid timer_start(timespec *aStartTime){      clock_gettime(CLOCK_REALTIME, aStartTime);}long timer_end(timespec *aStartTime){      timespec endTime;      clock_g

2014-04-26 23:01:34 617

原创 自动化测试思考 - 2关注质量

如何让花了很多人力精力的自动化测试体现出应有的价值,虽然说

2014-04-08 18:36:24 376

原创 memcache研究笔记 之 conn内存管理借鉴

freeconns 是 conn 的二维数组, freecurr指向当前的空闲槽conn 的分配 -- conn_from_freelist()函数。分配策略很简单, 就是把 freeconns[freecurr -1] 分配出去, 然后 freecurr 指针下移一个单位.如果 freeconns 没有空闲的 conn, 分配就失败, 函数 conn_from_freelist 返回 NUL

2014-04-07 22:15:29 476

原创 memcache研究笔记 之 多线程接入的交互

mc主线程启动,worker线程启动主线程和work线程初始化event_base, 然后event_base_loopworker线程创建管道,notify_receive_fd  event_add  到所在的event_base上有新请求接入,主线程处理函数event_handler回调driver_machin()处理conn_listening状态,dispatch_co

2014-04-06 14:51:57 1055

原创 脚本打开全部coredump查看堆栈信息

使用opengdb.sh一次性打开当前目录下全部coredumpchmod +x ./foxygdbfor file in `ls -rt | grep 'core.'`doecho "|----------------------------------------------------------------------------->"$

2014-04-03 16:10:47 1477

原创 比较隐秘的内存问题

share_ptr/auto_ptr 避免这样使用:强引用上的回环指针会导致内存泄露,可在destructor人为拆散症状:方便的话在ref_count加个打印就知道了,可以在对象析构加打印提醒是否有对象一直没被析构。基类析构函数非virtual  针对base *pt = new derived; delete pt的情况栈溢出.下标越界,栈区,一是越界离谱低于栈区最低地

2014-04-03 16:07:12 695

原创 robot-selenium2library 使用经验

RIDE上:F5 帮助文档,那些库有哪些关键字可用ctrl+shift+空格   在输入框按下后,快速补全关键字关键字举例:Page Should Contain Image  xpath=//img[@src="http://***.jpg"]    --》使用了xpath找节点Execute Javascript${CURDIR}/test.

2014-04-03 16:02:51 5728 1

原创 自动化测试思考 - 1关注过程

很多项目都有自己对应的自动化测试系统,你当前的系统体现出价值了吗?觉得有下列几种情况:1、人力精力投入了,能经常发现代码更新引起的bugs;2、人力精力投入了,偶尔能发现Bugs,不多,觉得投入与产出性价比不高;3、没怎么发现问题,性价比低,甚至后期都没动力维护。当然还可以从 用例覆盖率作为产入 发现bugs作为产出 作为维度来分析问题!当然,自动化测试的启动都是奔向第一个目标

2014-04-02 18:51:22 917

原创 c++函数执行时间

计算函数的执行时间,粒度比较小,往往也能从中发现项目代码的瓶颈,及时发现问题来提升系统的性能。c++代码时间的估算首先考虑几个时间函数:clock_gettime( ) 、gettimeofday()、_ftime()、time(),其中clock_gettime( ) 提供了纳秒级的精确度,更加准确,可以选用。同时要考虑到往函数注入时间计算函数的时候,对于原代码要考虑易用性,尽量使用配置

2014-03-28 21:40:45 2733

原创 memcache研究笔记 之 item_locks锁数组

mc里面用了大量的锁,简直是随处可见,在确保不死锁的同时保证性能!里面精髓之处值得琢磨学习mc用了哪些锁:conn_lock、slabs_lock、slabs_rebalance_lock、hold_lock、item_locks本篇针对item_locks的粒度变化做了研究:static pthread_mutex_t *item_locks;item_lock_coun

2014-03-22 11:49:45 2213

原创 memcache研究笔记 之 hashtable

查找过程中与关键字进行比较的次数通常取决于三个因素:哈希函数,解决冲突的方法和哈希表的填装因子。处理冲突方法相同的hashtable,其平均查找长度依赖于哈希表的装填因子:装填因子a = 表中填入的记录数/哈希表长度memcached 采用的hash 函数是Bob Jenkins 先生在1996 创立的一个算法,复杂度为O(6n+35),而且冲突率极低,该算法具体过程可以参阅这里。

2014-03-18 18:45:07 2584

原创 selenium2如何设置firefox的UA

最近再做robot自动测试系统,使用的是selenium2library库,原因是在网上查找发现其能设置各个浏览器的UA进行手机端模拟测试,在google上查到了可以配置chrome的UA:http://stackoverflow.com/questions/21155750/how-do-i-modify-google-chrome-user-agent-string-with-robot-fr

2014-01-22 18:05:58 5123

原创 robot selenium2 如何设置firefox的user agent

最近在跟进robot自动化测试系统,使用了selenium2library 库,原因是在网上找到它能设置chrome的ua然后进行访问,但是蛋疼的是对于firefox竟然找不到资料,只能自己硬着头皮找文档搞,辛苦了一番终于有结果:参考的文档:http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Librar

2014-01-22 17:58:52 1595

原创 算法领悟 - 从广度思考A*算法

wait

2013-12-08 19:20:43 164

原创 算法领悟 - SmartThead

算法的性能影响了整个程序的性能一般情况下,在程序里面使用算法,要考虑它的重复性问题 - 时间或者空间复杂度,这个时候如何避免这种重复导致的性能损耗呢?第一是完全的算法内容重复性第二是有规律的算法内容重复性目前本人考虑的是使用SmartThread和Algorithm-cache比如对于游戏地图的最短路径问题,如果复杂度比较高,可以使用两个点之间的算法成果缓存,这个是提高性能的第

2013-12-08 19:16:27 501

原创 探讨工作模式-高效、累积、风格

aaa

2013-11-27 11:46:29 473

原创 自动化项目模型-需求与开发过程

经过了针对某后台服务端的两个自动化测试项目,总结下就是这样的需求模型:model Base, 基本需求,项目方向Ambiguous, base周围的模糊需求,表现在控制需求者对业务需求基本熟悉但掌握不够细Unknown,对基本需求方向影响不大,表现在补充小部分ba

2013-11-26 17:33:30 960

原创 单元测试(UT)、功能测试(FT)

纯个人总结:单元测试(UT)、功能测试(FT):目的:1、尽量避免写的代码测试人员频繁的来找你其他地方又出问题了;2、提供的接口不可用;3、一个bug修复了引入了其他的bug或者其他用例变红了;理解:在实现函数功能的时候编写对应的测试代码,尽量保证”输入-输出”的正确性,在测试用例比较多的时候对系统有强身健体的功效,适用的人群是:非大牛者优点:保证函数基本功

2013-11-26 17:28:53 12393 1

原创 core分析-间接的指针误操作

先来看下core的堆栈信息:(gdb) bt 20#0  0x06d99e7c in __exchange_and_add (__mem=0xc08a69d8, __val=-1) at ...../../../../include/c++/4.6.2/ext/atomicity.h:48#1  __exchange_and_add_dispatch (__val=-1, __mem=

2013-11-26 17:22:51 1925

原创 特殊符号的编码资料参考

Unicode字符编码分布表——标点符号类http://wenku.baidu.com/view/379ca5697e21af45b307a8d8.htmlHTML字符实体(Character Entities),转义字符串(Escape Sequence)http://114.xixik.com/character/

2013-05-03 16:24:24 565

原创 CVS实践

module name:ln/fscheckout 分支:cvs co -r tag1 ln/fs   update 一个文件从主干到分支:cvs update -r tag1 ***.py      然后使用cvs status ***.py就看到已经更新到分支导入一个工程源码:cvs import -m "add project

2013-03-13 17:30:21 542

改善C++程序的150个建议

包含了各位c++大牛使用的经验之谈,可以和effective c++等书一起看,提升c++功力

2013-09-23

Android音视频处理

介绍android 音视频方面开发的接口和使用

2013-09-23

Android创意设计

android移动产品的创意之道,经验之谈,对产品设计很有帮助

2013-09-23

django入门

django入门的ppt,通俗易懂,非常适合初学者

2013-09-23

搭建Android开发环境

搭建Android开发环境 android eclipse sdk

2013-09-03

[入门必读]android移动开发

[入门必读]android移动开发 十个 案例 值得学习打包

2013-09-03

Android_3D游戏开发教程

Android 3D游戏开发教程 深入浅出

2013-09-03

Android+3D+game

Android 3D game开发入门引导

2013-09-03

unix网络编程-第三版读书笔记

unix网络编程-第三版读书笔记unix网络编程-第三版读书笔记

2011-11-20

对.lds连接脚本文件的分析.pdf

对.lds连接脚本文件的分析.pdf对.lds连接脚本文件的分析.pdf

2011-11-20

腾讯笔试题.doc

腾讯笔试题.doc 腾讯笔试题.doc 腾讯笔试题.doc

2011-11-20

Eciplse使用说明.ppt

Eciplse使用说明.pptEciplse使用说Eciplse使用说明.ppt 明.ppt

2011-11-20

使用int 最大值,最小值,注意啦

使用int 最大值,最小值,注意啦使用int 最大值,最小值,注意啦

2011-11-20

运算符重载:友元(friend)函数问题

运算符重载:友元(friend)函数问题

2011-11-20

C++对象在堆栈区的析构 - 好好理解堆栈

作为一个C++程序员,区别于其他面向对象语言其中最敏感的就是对new(malloc)和delete(free)这两个关键字了.。。。。。

2011-11-20

内存泄漏如何正确理解.doc

在计算机科学中,内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。。。。

2011-11-20

Window高级编程指南.pdf

计算机编程指南系列UNIX 平台下C语言高级编程指南 (2011 年度畅销榜NO.40836 )

2011-11-18

编程高手箴言 note.doc

8位芯片与以前的4位芯片相比,无论在指令还是译码数据,以及数据处理上都能按8位的方式进行处理。。。

2011-11-18

在VC中使用 Flash 美化你的程序.doc

在VC中使用 Flash 美化你的程序,可以使用FLASH背景修饰

2009-04-04

免费的VC界面库.rar

免费的VC界面库--VC作出来的界面一般比较简单,需要修饰,该界面库改善了可视化。欢迎下载使用

2009-04-04

注册表的作用和意义.doc

面对神秘的注册表,总让我措手不及,所以总结了有关注册表的相关知识...

2009-03-22

什么是内存泄漏以及什么是野指针2009.doc

什么是内存泄漏以及什么是野指针,理解了这些问题,会让你编程更加得心应收,编出更高效率的程序,这个资料是我个人总结的.

2009-03-22

vc++类对象内存布局.jpg

vc++类对象内存布局.jpg通过图解让你更容易理解哦呵呵....

2009-03-22

用vc实现邮件发送-代码

这个代码没有通过调用链接库来实现smtp邮件发送,可以学习代码来更好了解smtp邮件发送

2009-03-22

linux指令大全.doc

linux指令大全 包含了比较全面的指令,为学习该系统提供方便

2009-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除