compuwareLoadrunner和QALoad有什么区别?

compuware  时间:2021-06-05  阅读:()

云计算compuware的概念是什么

简单来说 云计算是当今谈的最热一个话题,是未来发展一个里程碑,随着云计算技术逐渐成熟,我们的生活习惯都将随之改变,无论是消费方式还是各种IT技术应用都将是一个质的飞跃。

compuware 是一家专业提供项目解决方案的集成商,提供IT服务一体化管理解决方案公司。

我是从IT号外知道的。

如何搞定Compuware DevPartner Studio 8.1

因为原来基于java做嵌入式系统,所以大部分工具都是围绕java展开的,基于java的一款单元测试工具非常好。

测试覆盖率的报表很强大,代码看起来赏心悦目。

现在clover也支持了。

可是现在做的是基于vc6的c语言开发,开来需要找一些新的工具来耍耍了。

网上爆推的是Rational Rose的PureCoverger和Numega的TureCoverger的,都是基于MSVC6无缝集成,license都爆贵,2万左右吧。

所以申请了试用版,现在Numega的最新版本叫Compuware DevPartner Studio,主要是应用程序或者网络程序的。

还有一款DriverStudio3.2,支持SoftICE,所以对搞驱动开发的很有好处。

说说这个DevPartner Studio,主要支持三个功能,BoundsChecker, TrueCoverger和TrueTime。

BoundsChecker是用来检查内存泄漏的,TrueCoverger是用来检查单元测试代码概率的,TrueTime是用来检查动态运行时哪段代码的执行效率偏低。

安装这个软件的时候需 framework1.1,但是我在安装后期的时候强制停止了安装,手欠啊,结果既不能修复,也不能卸载。

疯了。

查了一下网上的帮助,说是由于中途断电引起,只能手动删除,需要处理n个地方,注册表,服务,文件。

Faint, 比照了一些系统,发现很多地方都变了,彻底放弃了。

后来转念一想,1.1不让用了,我用2.0行不行。

装了一 framework2.0,结果DevPartner Studio还是需要1.1,烂,垃圾,有高版本给你你还不用。

应该怨微软,还是怨Compuware。

反正怨谁都没用,自己再想办法吧。

因为安装的时候发现2.0 rollback了一些1.0版本的文件,是不是有些地方给自动修复了呢?尝试删除1.1,可以了。

My God~,总算微软的兄弟们捍卫了软件王国的荣誉。

看来有时候装装新版本也会把旧版本的问题搞定。

如果是VC6,则必须是sp5以上的版本,否则DevPartner Studio无法将工具条嵌入到IDE环境中。

求助,dumping physical memory to disk是内存问题吗

简单说明了一下没有工具的情况如何运用VC库中的工具来检查代码的内存泄漏问题。

一: 内存泄漏 内存泄漏是编程中常常见到的一个问题,内存泄漏往往会一种奇怪的方式来表现出来,基本上每个程序都表现出不同的方式。

但是一般最后的结果只有两个,一个是程序当掉,一个是系统内存不足。

还有一种就是比较介于中间的结果程序不会当,但是系统的反映时间明显降低,需要定时的Reboot才会正常。

有 一个很简单的办法来检查一个程序是否有内存泄漏。

就是是用Windows的任务管理器(Task Manager)。

运行程序,然后在任务管理器里面查看 逗内存使用地和地虚拟内存大小地两项,当程序请求了它所需要的内存之后,如果虚拟内存还是持续的增长的话,就说明了这个程序有内存泄漏问题。

当然如果内存泄漏的数目非常的小,用这种方法可能要过很长时间才能看的出来。

当然最简单的办法大概就是用CompuWare的BoundChecker 之类的工具来检测了,不过这些工具的价格对于个人来讲稍微有点奢侈了。

如果是已经发布的程序,检查是否有内存泄漏是又费时又费力。

所以内存泄漏应该在Code的生成过程就要时刻进行检查。

二: 原因 内存泄漏产生的原因一般是三种情况: 分配完内存之后忘了回收; 程序Code有问题,造成没有办法回收; 某些API函数操作不正确,造成内存泄漏。

1. 内存忘记回收,这个是不应该的事情。

但是也是在代码种很常见的问题。

分配内存之后,用完之后,就一定要回收。

如果不回收,那就造成了内存的泄漏,造成内存泄漏的Code如果被经常调用的话,那内存泄漏的数目就会越来越多的。

从而影响整个系统的运行。

比如下面的代码: for (int =0;I<100;I++) { Temp = new BYTE[100]; } 就会产生 100*100Byte的内存泄漏。

2. 在某些时候,因为代码上写的有问题,会导致某些内存想回收都收不回来,比如下面的代码: Temp1 = new BYTE[100]; Temp2 = new BYTE[100]; Temp2 = Temp1; 这样,Temp2的内存地址就丢掉了,而且永远都找不回了,这个时候Temp2的内存空间想回收都没有办法。

3. API函 数应用不当,在Windows提供API函数里面有一些特殊的API,比如FormatMessage。

如果你给它参数中有FORMAT_MESSAGE_ALLOCATE_BUFFER,它会在函数内部New一块内存Buffer出来。

但是这个 buffer需要你调用LocalFree来释放。

如果你忘了,那就会产生内存泄漏。

三: 检查方法 一 般的内存泄漏检查的确是很困难,但是也不是完全没有办法。

如果你用VC的库来写东西的话,那么很幸运的是,你已经有了很多检查内存泄漏的工具,只是你想不 想用的问题了。

Visual C++的Debug版本的C运行库(C Runtime Library)。

它已经提供好些函数来帮助你诊断你的代码和跟踪内存泄漏。

而且最方便的地方是这些函数在Release版本中完全不起任何作用,这样就不会影响你的Release版本程序的运行效率。

比如下面的例子里面,有一个明细的内存泄漏。

当然如果只有这么几行代码的话,是很容易看出有内存泄漏的。

但是想在成千上万行代码里面检查内存泄漏问题就不是那么容易了。

char * pstr = new char[5]; lstrcpy(pstr,"Memory leak"); 如 果我们在Debug版本的Code里面对堆(Heap)进行了操作,包括malloc, free, calloc, realloc, new 和 delete可以利用VC Debug运行时库中堆Debug函数来做堆的完整性和安全性检查。

比如上面的代码,lstrcpy的操作明显破坏了pstr的堆结构。

使其溢出,并破坏 了临近的数据。

那我们可以在调用lstrcpy之后的代码里面加入 _CrtCheckMemory函数。

_CrtCheckMemory函数发现前面的lstrcpy使得pstr的堆结构被破坏,会输出这样的报告: emory check error at 0x00372FA5 = 0x79, should be 0xFD. memory check error at 0x00372FA6 = 0x20, should be 0xFD. memory check error at 0x00372FA7 = 0x6C, should be 0xFD. memory check error at 0x00372FA8 = 0x65, should be 0xFD. DAMAGE: after Normal block (#41) at 0x00372FA0. Normal located at 0x00372FA0 is 5 bytes long. 它 告诉说 pstr的长度应该时5个Bytes,但是在5Bytes后面的几个Bytes也被非法改写了。

提醒你产生了越界操作。

_CrtCheckMemory 的返回值只有TRUE和FALSE,那么你可以用_ASSERTE()来报告出错信息。

上面的语句可以换成 _ASSERTE(_CrtCheckMemory()); 这样Debug版本的程序在运行的时候就会弹出一个警告对话框,这样就不用在运行时候一直盯着Output窗口看了。

这个时候按Retry,就可以进入源 代码调试了。

看看问题到底出在哪里。

其他类似的函数还有 _CrtDbgReport, _CrtDoForAllClientObjects, _CrtDumpMemoryLeaks,_CrtIsValidHeapPointer, _CrtIsMemoryBlock, _CrtIsValidPointer,_CrtMemCheckpoint, _CrtMemDifference, _CrtMemDumpAllObjectsSince, _CrtMemDumpStatistics, _CrtSetAllocHook, _CrtSetBreakAlloc, _CrtSetDbgFlag,_CrtSetDumpClient, _CrtSetReportFile, _CrtSetReportHook, _CrtSetReportMode 这 些函数全部都可以用来在Debug版本中检查内存的使用情况。

具体怎么使用这些函数就不在这里说明了,各位可以去查查MSDN。

在这些函数中用处比较大 的,或者说使用率会比较高的函数是_CrtMemCheckpoint, 设置一个内存检查点。

这个函数会取得当前内存的运行状态。

_CrtMemDifference 检查两种内存状态的异同。

_CrtMemDumpAllObjectsSince 从程序运行开始,或者从某个内存检查点开始Dump出堆中对象的信息。

还有就是_CrtDumpMemoryLeaks当发生内存溢出的时候Dump出堆 中的内存信息。

_CrtDumpMemoryLeaks一般都在有怀疑是内存泄漏的代码后面调用。

比如下面的例子: #include <windows.h> #include <crtdbg.h> void main() { char * pstr; pstr = new char[5]; _CrtDumpMemoryLeaks(); } 输出: Detected memory leaks! à提醒你,代码有内存泄漏. Dumping objects -> {44} normal block at 0x00372DB8, 5 bytes long. Data: < > CD CD CD CD CD Object plete. 如 果你双击包含行文件名的输出行,指针将会跳到源文件中内存被分配地方的行。

当无法确定那些代码产生了内存泄漏的时候,我们就需要进行内存状态比较。

在可疑 的代码段的前后设置内存检查点,比较内存使用是否有可疑的变化。

以确定内存是否有泄漏。

为此要先定义三个_CrtMemState 对象来保存要比较的内存状态。

两个是用来比较,一个用了保存前面两个之间的区别。

_CrtMemState Sh1,Sh2,Sh_Diff; char *pstr1 = new char[100]; _CrtMemCheckPoint(&Sh1); ->设置第一个内存检查点 char *pstr2 = new char[100]; _CrtMemCheckPoint(&Sh2); ->设置第二个内存检查点 _CrtMemDifference(&Sh_Diff, &Sh1, &Sh2); ->检查变化 _CrtMemDumpAllObjectsSince(&Sh_Diff); ->Dump变化 如 果你的程序中使用了MFC类库,那么内存泄漏的检查方法就相当的简单了。

因为Debug版本的MFC本身就提供一部分的内存泄漏检查。

大部分的new 和delete没有配对使用而产生的内存泄漏,MFC都会产生报告。

这个主要是因为MFC重载了Debug版本的new 和delete操作符, 并且对前面提到的API函数重新进行了包装。

在MFC类库中检查内存泄漏的Class就叫 CMemoryState,它重新包装了了_CrtMemState,_CrtMemCheckPoint, _CrtMemDifference, _CrtMemDumpAllObjectsSince这些函数。

并对于其他的函数提供了Afx开头的函数,供MFC程序使用。

比如 AfxCheckMemory, AfxDumpMemoryLeaks 这些函数的基本用法同上面提到的差不多。

CMemoryState和相关的函数的定义都在Afx.h这个头文件中。

有个简单的办法可以跟踪到这些函数的声明。

在VC中找到MFC程序代码中下面的代码, 一般都在X.cpp的开头部分 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif 把 光标移到DEBUG_NEW上面 按F12,就可以进入Afx.h中定义这些Class和函数的代码部分。

VC中内存泄漏的常规检查办法主要是上面的两种。

当然这两种方法只是针对于Debug版本的Heap的检查。

如果Release版本中还有内存泄漏,那么 检查起来就麻烦很多了。

4 .总结: 实际上Heap的内存泄漏问题是相当的好查的。

VC的提供的检查工具也不太少,但是如果是栈出了什么问题,恐怕就麻烦很多了。

栈出问题,一般不会产生内存泄漏,但是你的代码的逻辑上很有可能会有影响。

这个是最最痛苦的事情。

编程,就是小心,小心再小心而已。

女人说底特律是啥意思

底特律(Detroit)[3]?是美国密歇根州最大的城市,也是韦恩县的县治所在。

1701年由法国贵族探险家、毛皮商安东尼·门斯·凯迪拉克建立,是位于美国东北部、加拿大温莎以南、底特律河沿岸的一座重要的港口城市、世界传统汽车中心和音乐之都。

城市得名于连接圣克莱尔湖和伊利湖的底特律河,它源自法语“Rivière du Détroit”,意为“海峡之河(River of the Strait)”。

根据美国人口普查局2010年的统计数据,底特律以713,777的人口位列全美第18大城市,但这个数目已不及1950年代人口顶峰时期的一半。

鼎盛时期的底特律人口达到了约185万,曾是美国最大的城市之一。

因此,底特律成为美国过去60多年中城市人口削减最多的城市之一。

不过,随着康博软件(Compuware)总部的兴建、文艺复兴中心的翻修和三座赌场及新体育场的投入使用,底特律的城区正在复苏之中,城市正逐渐成为整个都市圈的娱乐中心;但是好景不长,底特律于2013年7月18日正式申请破产。

12月3日,美国联邦法官批准了底特律的破产保护申请,底特律有资格削减其数十亿美元的债务,经历数十年衰退的底特律,由此也成为美国历史上最大的破产保护城市。

【美丽心情】团队,真诚为你解惑,满意请采纳哦。

Loadrunner和QALoad有什么区别?

区别最大的就是loadrunner需要很多钱! QALoad是Compuware针对client/server系统works相关应用的加载测试工具! loadrunner可操作的范围更加广一些! loadrunner市场份额现在都超过90%了……

CloudCone闪购优惠洛杉矶MC机房VPS月$1.99 便宜可随意删除重开

CloudCone商家我们很多喜欢低价便宜VPS主机的肯定是熟悉的,个人不是特别喜欢他。因为我之前测试过几次,开通的机器IP都是不通的,需要删除且开通好几次才能得到一个可用的IP地址。当然他们家的优势也是有的,就是价格确实便宜,而且还支持删除重新开通,而且机房只有一个洛杉矶MC。实话,如果他们家能多几个机房,保持现在的特点,还是有很多市场的。CloudCone是来自美国的主机销售商,成立于2017...

LayerStack$10.04/月(可选中国香港、日本、新加坡和洛杉矶)高性能AMD EPYC (霄龙)云服务器,

LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...

Digital-VM80美元新加坡和日本独立服务器

Digital-VM商家的暑期活动促销,这个商家提供有多个数据中心独立服务器、VPS主机产品。最低配置月付80美元,支持带宽、流量和IP的自定义配置。Digital-VM,是2019年新成立的商家,主要从事日本东京、新加坡、美国洛杉矶、荷兰阿姆斯特丹、西班牙马德里、挪威奥斯陆、丹麦哥本哈根数据中心的KVM架构VPS产品销售,分为大硬盘型(1Gbps带宽端口、分配较大的硬盘)和大带宽型(10Gbps...

compuware为你推荐
chinapay贝宝和支付宝的区别js后退在全局js中屏蔽了后退功能,但是想让自己定义的后退有用模式识别算法研究生研究方向:数据挖掘、模式识别、启发算法这三者哪个有前途印度尼西亚国家代码印尼身份证号的编码规则是什么?(比如中国的1-6位是地址代码,7-14位是出生日期码等)部署工具如何使用office2016部署软件数据统计分析表如何用Excel做数据分析?天翼校园宽带校园天翼宽带是什么上网类型天翼校园宽带中国电信校园宽带怎么样?数据库界面数据库怎么进入界面人脸识别解锁华为手机人脸识别解锁如何设置
重庆网站空间 西安域名注册 长沙域名注册公司 移动服务器租用 ubuntu更新源 eq2 gspeed 129邮箱 福建铁通 服务器监测 联通网站 国内域名 广东主机托管 apnic 美国主机侦探 godaddyssl alexa世界排名 hosts文件 卡巴斯基官方下载 tko 更多