4

私はこの混合環境で作業しており、Windows マシンを使用SimicsCygwinて、UNIX のような環境でいくつかのコードを実行しています。私は C でコーディングしていますが、Python でソリューションを実行することに興味があります。Unix 環境で を見つけるには、次のようにSC_PAGE_SIZEします。

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

c でコーディングしている場合は、次のことができます。

#C, unix environment
size_t page_size = (size_t) sysconf (_SC_PAGESIZE);

ただし、Windows で python を使用する場合os.sysconfは存在せず、代替品を見つけることができませんでした。環境を見つけるためにPythonで何を使用できますかPAGE_SIZE

余談ですが、なぜ私がセットアップをそのまま使用していて、それが私の選択ではないのか疑問に思われるかもしれません. 仕事の宿題です。私が尋ねている質問は、私自身の利益のためであり、宿題のためではありません.

4

4 に答える 4

10

試す:

import mmap

print mmap.PAGESIZE
于 2012-12-07T01:32:43.893 に答える
1

私が見つけた唯一の同等物はCでしたが、コードをコンパイルしてPythonから実行すると、探していた結果を得ることができます。残念ながら、現時点では、UNIX バージョンと同じくらい単純な Windows で動作する python コマンドはないようですが、少なくとも結果は得られます。

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

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

        return 0;
}
于 2012-10-11T06:55:09.020 に答える
1

私はシステムの専門家ではないので、Windows の SC_PAGE_SIZE に対応するものはわかりません。ただし、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
于 2012-01-12T20:56:02.390 に答える