一、purify 业务代码结构分析 Purify 架构改革后,结构不再是一般的Activity和里面事件点击了,而是加入了引擎。
推荐使用的内存泄漏工具有:在Windows上使用「Purify」,在Linux上使用「Valgrind」。
当我做完第一个项目时,有个公司里的牛人和我说,你用 Purify 测试一下你的代码有没有内存问题。 Purify 是以前一个叫 Rational 的公司(后来被 IBM 收购)做的一个神器,有点像 Linux 开源的 Valgrind。 用完以后,我觉得 Purify 太厉害了,于是把它的英文技术文档通读了一遍。经理看我很喜欢这个东西,就让我给公司里的人做个分享。我认真地准备了个 PPT,结果只来了一个 QA。 有了这个正向反馈,我就把关于 Purify 的文章分享到了我的 CSDN 博客上,标题为《C/C++ 内存问题检查利器—Purify》。可能因为这个软件是收费的,用的人不多,这篇文章的读者反响不大。 但是,2003 年的一天我很意外地接到了一个电话,是一个公司请我帮忙去给客户培训 Purify 这个软件。IBM 的培训太贵了,所以代理这个软件的公司为了成本问题,想找一个便宜的讲师。
当我做完第一个项目时,有个公司里的牛人和我说,你用 Purify 测试一下你的代码有没有内存问题。 Purify 是以前一个叫 Rational 的公司(后来被 IBM 收购)做的一个神器,有点像 Linux 开源的 Valgrind。 用完以后,我觉得 Purify 太厉害了,于是把它的英文技术文档通读了一遍。经理看我很喜欢这个东西,就让我给公司里的人做个分享。我认真地准备了个 PPT,结果只来了一个 QA。 有了这个正向反馈,我就把关于 Purify 的文章分享到了我的 CSDN 博客上,标题为《C/C++ 内存问题检查利器—Purify》。可能因为这个软件是收费的,用的人不多,这篇文章的读者反响不大。 但是,2003 年的一天我很意外地接到了一个电话,是一个公司请我帮忙去给客户培训 Purify 这个软件。IBM 的培训太贵了,所以代理这个软件的公司为了成本问题,想找一个便宜的讲师。
1.1 安装 安装PurifyCSS-webpack插件,PurifyCSS-webpack是依赖于purify-css这个包的,所以这两个都需要安装。 这里采用npm安装(也可采用cnpm安装) npm i -D purifycss-webpack purify-css -D:是–save-dev的一个简写。
Shaking:webpack-parallel-uglify-plugin webpack.optimization css代码压缩及Tree Shaking:purifycss-webpack purify-css
TMM获奖情况 【开发目的】 防泄漏测试一直是编程测试中非常重要的一个模块,尽管目前市面上已有一些Windows平台下的内存泄漏动态检测工具,比如UMDH,VLD,Purify,BoundsCheck等 ,但其中Purify和BoundsCheck是昂贵的商用软件,UMDH需要人工获取内存快照,操作门槛较高,VLD则需要修改源程序的代码,同时这几款工具都存在误报情况,因此准确性不高。
所以我们可以使用一个插件,在打包的时候自动去除未使用的css样式: /*PurifyCSS-webpack要依赖于purify-css这个包,所以这两个都安装一下,-D是--save-dev的简写,i是 install的简写*/ npm i -D purifycss-webpack purify-css 然后我们引入glod和purifycss-webpack插件: const glob = require
):业务代码直接调用 四 :流程与覆盖率篇 1、脚本方式执行 Local Unit Tests 和 Instrumented Tests 2、衡量方式 --覆盖率接入 3、CI 运行 五:实战篇 1、purify
作者:小耳朵 来源:http://purify.blog.51cto.com/10572011/1867346
作者:小耳朵 来源:http://purify.blog.51cto.com/10572011/1867346
readfds; FD_ZERO(&readfds); FD_SET(fd, &readfds); 那么,这里的fd必须满足:fd < FD_SETSIZE,否则即会发生越界,使用valgrind和purify
purifier=new CHtmlPurifier; $purifier->options=array('HTML.Allowed'=>'div'); $content=$purifier->purify
所以我们可以使用一个插件,在打包的时候自动去除未使用的css样式: /*PurifyCSS-webpack要依赖于purify-css这个包,所以这两个都安装一下,-D是--save-dev的简写,i是 install的简写*/ npm i -D purifycss-webpack purify-css 然后我们引入glod和purifycss-webpack插件: const glob = require
;</script>'clean_html = purifier.purify(dirty_html)print(clean_html)2.
readfds; FD_ZERO(&readfds); FD_SET(fd, &readfds); 那么,这里的fd必须满足:fd < FD_SETSIZE,否则即会发生越界,使用valgrind和purify
作者:小耳朵 来源:http://purify.blog.51cto.com/10572011/1871424
开发者每天将编写/改动的代码及时的更新到配置库中,自己主动化编译程序每天至少一次自己主动从配置库上取下代码,执行自己主动化代码静态检查(如PCLint),单元測试,编译版本号,安装,系统測试,动态检查(如Purify 没有人对Purify有深刻的理解和应用经验,报告中查出来非常多告警,但不知怎样消除。 5、由于高速搭建原型,没有在架构上进行严谨的设计,导致后期一直堆砌代码。
编译测试程序 [dyu@xilinuxbldsrv purify]$ g++ -g lock.cpp -o lock -lpthread 清单 3. 查找测试程序的进程号 [dyu@xilinuxbldsrv purify]$ ps -ef|grep lock dyu 6721 5751 0 15:21 pts/3 00:00: 对死锁进程第一次执行 pstack(pstack –进程号)的输出结果 [dyu@xilinuxbldsrv purify]$ pstack 6721 Thread 5 (Thread 0x41e37940 对死锁进程第二次执行 pstack(pstack –进程号)的输出结果 [dyu@xilinuxbldsrv purify]$ pstack 6721 Thread 5 (Thread 0x40bd6940
作者:小耳朵 来源:http://purify.blog.51cto.com/10572011/1852970