HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0827
info現在使用しているメモリを取得する方法。6解決


info

リンク

2011/8/27(Sat) 18:03:43|NO.40895

現在のアプリケーションのcpu使用量を知るスクリプトを組んでいるのですが。
タスクマネージャ等と照らし合わせても、一致した数値が出てきません。

おそらく、WorkingSetSize のメンバだと思うのですが、

どなたかわかる方はいらっしゃいますでしょうか?


#enum global pmcex_cb = 0 #enum global pmcex_PageFaultCount #enum global pmcex_PeakWorkingSetSize #enum global pmcex_WorkingSetSize #enum global pmcex_QuotaPeakPagedPoolUsage #enum global pmcex_QuotaPagedPoolUsage #enum global pmcex_QuotaPeakNonPagedPoolUsage #enum global pmcex_QuotaNonPagedPoolUsage #enum global pmcex_PagefileUsage #enum global pmcex_PeakPagefileUsage #enum global pmcex_PrivateUsage #enum global PROCESS_MEMORY_COUNTERS_EX_ELETOTAL #const global PROCESS_MEMORY_COUNTERS_EX_STRUCTSIZE PROCESS_MEMORY_COUNTERS_EX_ELETOTAL*4 #uselib "psapi.dll" #func GetProcessMemoryInfo "GetProcessMemoryInfo" sptr, sptr,sptr #include "kernel32.as" dim pmc_,PROCESS_MEMORY_COUNTERS_EX_ELETOTAL pmc_.pmcex_cb = PROCESS_MEMORY_COUNTERS_EX_STRUCTSIZE GetCurrentProcess GetProcessMemoryInfo stat , varptr(pmc_),PROCESS_MEMORY_COUNTERS_EX_STRUCTSIZE repeat PROCESS_MEMORY_COUNTERS_EX_ELETOTAL mes pmc_.cnt loop



この記事に返信する


who

リンク

2011/8/27(Sat) 19:56:02|NO.40897

ちょっと見ただけなのでよくはわかりませんが、関数を見る限りCPUではなくメモリに関する情報を取得しているように見えますが。



who

リンク

2011/8/27(Sat) 20:58:49|NO.40899

これでOKだと思います。たぶん。定数関係を調べてたら時間かかったww

onexit goto*e #define PDH_FMT_LONG ( 0x00000100) #define PDH_FMT_DOUBLE ( 0x00000200) #define PDH_FMT_LARGE ( 0x00000400) #uselib "pdh.dll" #cfunc PdhOpenQuery "PdhOpenQuery" int,int,int #cfunc PdhAddCounter "PdhAddCounterA" int,int,int,int #cfunc PdhCollectQueryData "PdhCollectQueryData" int #cfunc PdhCloseQuery "PdhCloseQuery" int #cfunc PdhGetFormattedCounterValue "PdhGetFormattedCounterValue" int,int,int,int alloc Value, 16 dupptr cpu_l,varptr(Value)+8,4,vartype("int") dupptr cpu_d,varptr(Value)+8,8,vartype("double") hQuery=0 hCounter=0 mes PdhOpenQuery(NULL,0,varptr(hQuery)) PATH="\\Processor(_Total)\\% Processor Time" mes PdhAddCounter( hQuery , varptr(PATH) , 0, varptr(hCounter) ) mes PdhCollectQueryData(hQuery) *main redraw 1:wait 100:redraw 0 color 255,255,255 boxf color 0,0,0 pos 0,100 A=PdhCollectQueryData(hQuery) A=PdhGetFormattedCounterValue (hCounter, PDH_FMT_DOUBLE, 0, varptr(Value)) mes "CPU使用率(vartype=double):"+cpu_d goto*main *e mes PdhCloseQuery(hQuery) end



info

リンク

2011/8/28(Sun) 14:45:56|NO.40902

すみません、CPU では無く、メモリの情報です。
打ち間違えてしまいました。

CPU に関するスクリプト有難うございます。
お手を煩わせて申し訳有りません。
素晴しいスクリプトなので宜しければ有りがたく使わせて頂きます。



skyblue

リンク

2011/8/29(Mon) 18:46:16|NO.40927

GlobalMemoryStatus関数の2つ目にメモリーの使用率を取得するようになっているので
それを使って下さい。



info

リンク

2011/8/29(Mon) 21:15:47|NO.40934

有難うございます。おかげで解決しました。



info

リンク

2011/8/29(Mon) 21:16:10|NO.40935

解決押し忘れ



ONION software Copyright 1997-2023(c) All rights reserved.