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%了……

提速啦(24元/月)河南BGP云服务器活动 买一年送一年4核 4G 5M

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

易探云330元/年,成都4核8G/200G硬盘/15M带宽,仅1888元/3年起

易探云服务器怎么样?易探云是国内一家云计算服务商家,致力香港云服务器、美国云服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出的国内云服务器优惠活动,国内云服务器2核2G5M云服务器低至330元/年起;成都4核8G/200G硬盘/15M带宽,仅1888元/3年起!易探云便宜vps服务器配置推荐:易探云vps云主机,入门型云...

vpsdime:VPS内存/2核/VPS,4G内存/2核/50gSSD/2T流量/达拉斯机房达拉斯机房,新产品系列-Windows VPS

vpsdime上了新产品系列-Windows VPS,配置依旧很高但是价格依旧是走低端线路。或许vpsdime的母公司Nodisto IT想把核心产品集中到vpsdime上吧,当然这只是站长个人的猜测,毕竟winity.io也是专业卖Windows vps的,而且也是他们自己的品牌。vpsdime是一家新上来不久的奇葩VPS提供商,实际是和backupspy以及crowncloud等都是同一家公司...

compuware为你推荐
scheduleatfixedrate定时任务中的 Timer的schedule和scheduleAtFixedRate方法的区别?mac地址克隆mac地址克隆是什么意思。视频技术学习短视频需要准备什么?怎么去做呢?oa办公系统下载完全免费的oa办公系统腾讯年终奖腾讯工作怎么样自定义表情手机QQ自定义表情怎么添加模式识别算法机器学习和模式识别有什么区别?看教材,发现它们的算法都差不多一样啊。。。什么是网络地址什么是IP地址?软件开发技术文档软件开发项目中,过程管理文档都包括什么?电子词典软件关于电子词典哪款好?我要中英日的!
vps主机 草根过期域名 外国服务器 网通代理服务器 浙江独立 卡巴斯基永久免费版 个人空间申请 中国电信测速112 linux服务器维护 免费高速空间 网游服务器 电信托管 ca187 云营销系统 宿迁服务器 广州主机托管 新疆服务器 zcloud accountsuspended restart 更多