1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
«¼,Pc@sdZddlZddlZejZejZejZej    Z
ej Z ej ejƒZej ej ƒZejZejZej    Zej    ZejZdejfd„ƒYZdejfd„ƒYZdejfd„ƒYZd    ejfd
„ƒYZd ejfd „ƒYZd dd„ƒYZda dZ!e!d„Z"d„Z#d„Z$d„Z%d„Z&d„Z'd„Z(d„Z)e*dkr™e)ƒndS(s.
Created on 2012-7-11
 
@author: Administrator
iÿÿÿÿNtSYSTEM_INFO_UNION_STRUCTcBs eZdefdefgZRS(twProcessorArchitecturet    wReserved(t__name__t
__module__tWORDt_fields_(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyRs    tSYSTEM_INFO_UNIONcBs eZdefdefgZRS(tdwOemIdtoOemID(RRtDWORDRR(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyRs    t SYSTEM_INFOc BsneZd
Zdefdefdefdefdefdefdefdefdefd    efg
ZRS( tut
dwPageSizetlpMinimumApplicationAddresstlpMaximumApplicationAddresstdwActiveProcessorMasktdwNumberOfProcessorstdwProcessorTypetdwAllocationGranularitytwProcessorLeveltwProcessorRevision(su(    RRt _anonymous_RR
tPVOIDtUINT_PTRRR(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR #s                                    tFILETIMEcBs eZdefdefgZRS(t dwLowDateTimetdwHighDateTime(RRR
R(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR0s    tPROCESS_MEMORY_COUNTERSc BsheZdefdefdefdefdefdefdefdefdefd    efg
ZRS(
tcbtPageFaultCounttPeakWorkingSetSizetWorkingSetSizetQuotaPeakPagedPoolUsagetQuotaPagedPoolUsagetQuotaPeakNonPagedPoolUsagetQuotaNonPagedPoolUsaget PagefileUsagetPeakPagefileUsage(RRR
tSIZE_TR(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR5s                                    tCSSInfocBs˜eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z e d ƒd „Zd „Zd„Zd„ZRS(cCs”tjdƒ|_tjdƒ|_tjdƒ|_d|_d|_d|_d|_d|_    d|_
d|_ d|_ d|_ d|_dS(NtKernel32tPsapitWinmmi(tctypestWinDLLt_CSSInfo__KernelDllt_CSSInfo__PsapiDllt_CSSInfo__WinmmDllt_CSSInfo__CheckTickt_CSSInfo__LastSSCheckTickt_CSSInfo__CPUCountt_CSSInfo__VirtualMemSizet_CSSInfo__MemSizet_CSSInfo__KernelTimet_CSSInfo__UserTimet_CSSInfo__ProcessKernelTimet_CSSInfo__ProcessUserTimet _CSSInfo__CPU(tself((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt__init__Bs                                    cCs ||_dS(N(R1(R;ttick((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt SetCheckTickRscCsG|jdkr@tƒ}|jjtj|ƒƒ|j|_n|jS(Ni(R3R R.t GetSystemInfoR,tbyrefR(R;t
systemInfo((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt GetCPUCountUs
    cCst|d|ƒS(Nid(tint(R;tNumber1tNumber2((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pytNumberToPercent\scCs)tƒ}|jjtj|ƒƒ|jS(N(R R.R?R,R@R(R;RA((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pytGetNumberOfProcessors`s    cCs |jjƒS(N(R.tGetCurrentProcess(R;((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyRHfscCs|jj|ƒS(N(R.t GetProcessId(R;tprocess((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pytGetCurrentProcessIDjscCs |d|S(Ni((R;tValuet
ShiftCount((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt__Int64ShllMod32mscCs |d|S(Ni((R;RLRM((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pytInt64ShllMod32pscCs|j|jdƒ|jBS(Ni (RORR(R;tpft((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pytFileTimeToQuadWordsscCs|jdkr%|jjƒ|_dS|jjƒ|j}||jkrNdStƒ}|jjtdƒtj    |ƒtj
|ƒƒsœd|_ d|_ n|j |_ |j|_ |jƒ|jjƒ|_tjƒjd|jƒ|jƒ|jƒfƒdS(Niiÿÿÿÿs)CPUUseage=%s MemSize=%s VirtualMemSize=%s(R2R0t timeGetTimeR1RR/tGetProcessMemoryInfotHANDLER,R@tsizeofR4R5R%R t CalcCPUUseaget SSCommonLogtGetLogtdebugtGetCPUt GetMemorySizetGetVirtualMemorySize(R;tdifftpmc((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt CheckSSInfovs"    0       
    iÿÿÿÿc
CsI|s
dStƒ}tƒ}tƒ}tƒ}|jj|tj|ƒtj|ƒtj|ƒtj|ƒƒstdS|j|ƒ}|j|ƒ}|jdks°|jdkrÆ||_||_dS||j|_||j|_    ||_||_|j|j    dd}|j
j ƒ|j }    |j ||    |jƒƒ|_dS(Nii
iè(RR.tGetProcessTimesR,R@RQR6R7R8R9R0RRR2RFRBR:(
R;thProcesst ftKernelTimet
ftUserTimetftDummyt
ftExitTimetprocessKernelTimetprocessUserTimet processTimettoalTime((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyRVŒs2                                    cCs|jS(N(R:(R;((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyRZ­scCs|jS(N(R4(R;((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR\±scCs|jS(N(R5(R;((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR[µs(RRR<R>RBRFRGRHRKt_CSSInfo__Int64ShllMod32RORQR_RTRVRZR\R[(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR(As                                            !        iècCs)tdkrtƒantj|ƒdS(N(t    __oSSInfotNoneR(R>(t    checkTick((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt
InitSSInfo¼s  cCs)tdkr%tƒatjtƒntS(N(RkRlR(R>t DEF_CHECKTICK(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt    GetSSInfoÂs     cCstrtj|ƒndS(N(RkR>(Rm((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR>ÉscCstrtjƒndS(N(RkR_(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR_ÎscCstrtjƒSdS(Ni(RkRZ(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyRZÓs
cCstrtjƒSdS(Ni(RkR\(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR\Ùs
cCstrtjƒSdS(Ni(RkR[(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyR[ßs
cCs§tjdƒ}d}tdƒxtr¢|jƒ}|dkrd|}dtƒtƒtƒfGHq"||dkr"tƒ|}dtƒtƒtƒfGHq"q"WdS(NR+iiès cpuʹÓÃÂÊ:%s ÐéÄâÄÚ´æ:%s ÄÚ´æ:%si'(    R,R-RntTrueRRRZR\R[R_(tWinmmDllt    startTimetnow((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pytTestès 
              t__main__((+t__doc__R,RWtc_inttINTtc_ubytetBYTEtc_ushortRtc_ulongR
tc_chartCHARtPOINTERtLPBYTEtLPTSTRtc_void_pRTRRR't c_ulonglongtINT64t    StructureRtUnionRR RRR(RlRkRoRnRpR>R_RZR\R[RuR(((s0.\server\db\PyMongoDataServer\SSCommon\SSInfo.pyt<module>
s@                                            y