请问AIX4.3.X上是否有Perfstat API(libperfstat.h)?

blueflame 2003-10-04 12:23:27
我在资料上看到AIX 5L是有的,有文档似乎提到(只是只言片语,具体情况不得而知)AIX 4.3.X要安装个什么包才行,是否有高手知道具体试要怎样才能使AIX 4.3.X上具有Perfstat API?谢谢!
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sexroute 2003-12-16
  • 打赏
  • 举报
回复
上面是安装包
sexroute 2003-12-16
  • 打赏
  • 举报
回复
x bos.perf.libperfstat x
x bos.perf.perfstat x
sexroute 2003-12-12
  • 打赏
  • 举报
回复
// sys_info_v1.cpp: implementation of the sys_info_v1 class.
// coded by 赵大力 12-10-2003
//////////////////////////////////////////////////////////////////////

#include "sys_info_v1.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

sys_info_v1::sys_info_v1()
{

}

sys_info_v1::~sys_info_v1()
{

}
//////////////////////////////////////////////////////////////////////////
// 获得整数型系统参数
//////////////////////////////////////////////////////////////////////////
long sys_info_v1::m_i_getPara(kstat_ctl_t *kc, char *szFirstClass, char *szSecondClass, char *szThirdClass)
{
if(this->m_i_isInit!=1){
this->m_i_initKstat();
}
kstat_t *ksp;
kstat_named_t *knp;
/*查询大类*/
if (!(ksp = kstat_lookup(kc, szFirstClass, -1, szSecondClass))) {
cout<<"zdl lookup "<<szFirstClass<<"failed!"<<endl;
exit(1);
}else{

}
if (kstat_read(kc,ksp,NULL)<0) {
cout<<"zdl read "<<szFirstClass<<"failed!"<<endl;
exit(1);
}else{
}
/*查询小类*/
knp = (kstat_named_t*)kstat_data_lookup(ksp, szThirdClass);

return knp->value.i32;
}
//////////////////////////////////////////////////////////////////////////
// 获得字符串型系统参数
//////////////////////////////////////////////////////////////////////////
char * sys_info_v1::m_sz_getPara(kstat_ctl_t *kc, char *szFirstClass, char *szSecondClass, char *szThirdClass)
{
if(this->m_i_isInit!=1){
this->m_i_initKstat();
}
kstat_t *ksp;
kstat_named_t *knp;
/*查询大类*/
if (!(ksp = kstat_lookup(kc, szFirstClass, -1, szSecondClass))) {
cout<<"zdl lookup "<<szFirstClass<<"failed!"<<endl;
exit(1);
}else{

}
if (kstat_read(kc,ksp,NULL)<0) {
cout<<"zdl read "<<szFirstClass<<"failed!"<<endl;
exit(1);
}else{
}
/*查询小类*/
knp = (kstat_named_t*)kstat_data_lookup(ksp, szThirdClass);

return knp->value.c;
}
//////////////////////////////////////////////////////////////////////////
// 获得系统基本信息cpu数量、主频、类型、物理内存容量
//////////////////////////////////////////////////////////////////////////
int sys_info_v1::getBaseInfo(_sysInfo *pSysinfo)
{
//////////////////////////////////////////////////////////////////////////
//利用uname api获得系统信息
//////////////////////////////////////////////////////////////////////////
struct utsname buf;
int href=uname ( &buf);
pSysinfo->buf=buf;
//////////////////////////////////////////////////////////////////////////
//得到内存页大小
//////////////////////////////////////////////////////////////////////////
int pagesize=this->pagesize;
pSysinfo->cCpuType=this->m_sz_getPara(this->kc,"cpu_info",NULL,"cpu_type");
pSysinfo->cCpuSpeed=this->m_i_getPara(this->kc,"cpu_info",NULL,"clock_MHz");
pSysinfo->cCpuNo=this->m_i_getPara(this->kc,"unix","system_misc","ncpus");
pSysinfo->cTotalMemory=(this->m_i_getPara(this->kc,"unix","system_pages","physmem")*(pagesize)/1024/1024);
return 0;
}



int sys_info_v1::m_i_initKstat()
{
this->kc=NULL;
//////////////////////////////////////////////////////////////////////////
// 获得系统页大小
//////////////////////////////////////////////////////////////////////////
this->pagesize= sysconf(_SC_PAGESIZE);
//////////////////////////////////////////////////////////////////////////
// 初始化kstat
//////////////////////////////////////////////////////////////////////////
if (!this->kc) {
if (!(this->kc = kstat_open())) {;
cout<<"kstat_open() failed! "<<endl;
exit(1);
}
}

if (kstat_chain_update(this->kc) < 0) {
cout<<"kstat_chain_update() failed! "<<endl;
exit(1);
}
this->m_i_isInit=1;
return 0;
}
int main(){
sys_info_v1 *p=new sys_info_v1();
_sysInfo *baseInfo=new _sysInfo();
//////////////////////////////////////////////////////////////////////////
// 初始化 kstat
//////////////////////////////////////////////////////////////////////////
p->m_i_initKstat();
//////////////////////////////////////////////////////////////////////////
// 获得基本信息
//////////////////////////////////////////////////////////////////////////
p->getBaseInfo(baseInfo);
cout<<baseInfo->cCpuSpeed<<endl;
cout<<baseInfo->cCpuType<<endl;
cout<<baseInfo->cTotalMemory<<endl;
cout<<baseInfo->cCpuNo<<endl;
cout<<(&(baseInfo->buf))->machine<<endl;
cout<<(&(baseInfo->buf))->nodename<<endl;
cout<<(&(baseInfo->buf))->release<<endl;
cout<<(&(baseInfo->buf))->sysname<<endl;
cout<<(&(baseInfo->buf))->version<<endl;
//////////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////////

return 0;
}
blueflame 2003-10-30
  • 打赏
  • 举报
回复
问了个IBM的AIX工程师,他说是有的,但一时也记不清还要安装哪个包了
哪位大虾知道的?还望不吝赐教,谢谢了!
foryijian 2003-10-08
  • 打赏
  • 举报
回复
我也想知道

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧