在Windows中使用Python查找scu页面大小

2024-10-05 10:22:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这个混合环境中工作,在Windows计算机上使用Simics和{}在类unix的环境中运行一些代码。我一直在用C编写代码,但我有兴趣尝试用Python实现我的解决方案。在unix环境中,要查找SC_PAGE_SIZE,只需执行以下操作:

#Python-2.7, unix environment
page_size = os.sysconf("SC_PAGE_SIZE")

如果用c编写代码,则可以执行以下操作:

^{pr2}$

但是当在Windows中使用python时,os.sysconf不存在,我也找不到替代品。我可以在python中使用什么来查找环境的PAGE_SIZE。在

附带说明一下,我知道你可能想知道我为什么要按原样使用设置,而这不是我的选择。这是工作中的家庭作业。我问的问题是为了我自己的利益,不是为了家庭作业。在


Tags: 代码size环境oswindows计算机pageunix
3条回答

我能找到的唯一等价物是C语言,但是如果我编译代码,然后从python执行它,我就能得到我想要的结果。不幸的是,到目前为止,似乎还没有一个python命令可以在Windows中像unix版本一样简单,但这至少给了我一个结果。在

int main(void) {
        SYSTEM_INFO si;
        GetSystemInfo(&si);

        printf("%u", si.dwPageSize);

        return 0;
}

我不是一个系统专家,所以我不知道什么是对应于微软的页面大小。不管怎样,你可以用WMI查询系统性能。在

这里有一个例子,应该能提供很多东西。祝你找到你想要的东西:

import win32com.client

import unicodedata
def _(text):
    if type(text) is unicode:
        return unicodedata.normalize('NFKD', text).encode('ascii','ignore')
    return text

def to_kb(x):
    if x:
        return int(x)/1024
    return x

strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_Process")


for objItem in colItems:
    print "------------------------------------------"
    print "Command Line: ", _(objItem.CommandLine)
    print "Process Id: ", objItem.ProcessId

    print "Handle: ", objItem.Handle
    print "Handle Count: ", objItem.HandleCount
    print "Maximum Working Set Size: ", to_kb(objItem.MaximumWorkingSetSize)
    print "Minimum Working Set Size: ", to_kb(objItem.MinimumWorkingSetSize)
    print "Page Faults: ", objItem.PageFaults
    print "PageFile Usage: ", objItem.PageFileUsage
    print "Peak PageFile Usage: ", objItem.PeakPageFileUsage
    print "Peak Virtual Size: ", objItem.PeakVirtualSize
    print "Peak Working Set Size: ", objItem.PeakWorkingSetSize
    print "Private Page Count: ", objItem.PrivatePageCount
    print "Quota NonPaged Pool Usage: ", objItem.QuotaNonPagedPoolUsage
    print "Quota Paged Pool Usage: ", objItem.QuotaPagedPoolUsage
    print "Quota Peak NonPaged Pool Usage: ", objItem.QuotaPeakNonPagedPoolUsage
    print "Quota Peak Paged Pool Usage: ", objItem.QuotaPeakPagedPoolUsage
    print "Virtual Size: ", objItem.VirtualSize
    print "Working Set Size: ", to_kb(objItem.WorkingSetSize)
    print "Write Operation Count: ", objItem.WriteOperationCount
    print "Write Transfer Count: ", objItem.WriteTransferCount

尝试:

import mmap

print mmap.PAGESIZE

相关问题 更多 >

    热门问题