দেখে মনে হচ্ছে আপনি যেমন কিছু করতে পারেন:
wmic process get ProcessId,Name,UserModeTime,KernelModeTime /EVERY:1
সেখানে ব্যবহারকারীর এবং কার্নেল মোডের সময়গুলি 1 / 10,000,000 সেকেন্ডের মধ্যে প্রকাশিত বলে মনে হচ্ছে।
প্রতি সেকেন্ডে সিপিইউ-ব্যবহার পেতে আপনার আউটপুট পোস্ট-প্রক্রিয়া করতে সক্ষম হওয়া উচিত।
এখানে সাইগউইনের ব্যবহার perl
:
wmic process get ProcessId,Name,UserModeTime,KernelModeTime /EVERY:1 |
perl -lne '
if (/\S/) {
my ($k,$c,$p,$u) = split /\s{2,}/;
$n{"$p\t$c"}=$k+$u;
} else {
my %c;
for my $k (keys %n) {
$c{$k} = $n{$k} - $o{$k} if defined $o{$k}
}
print "$_\t" . $c{$_}/1e5 for (sort {$c{$b}<=>$c{$a}} keys %c)[0..20];
%o = %n; %n = undef; print ""
}'
ফলাফল যেমন:
0 System Idle Process 588.12377
2196 sh.exe 107.00075
248 svchost.exe 85.80055
7140 explorer.exe 26.52017
[...]
প্রতি মুহূর্ত.
মনে রাখবেন যে সিস্টেম নিষ্ক্রিয় প্রক্রিয়াটি যদি অলস সিস্টেমে মাত্র 800% এর নিচে দেখায়, কারণ এটি আপনার সিপিইউর সমস্ত সিপিইউ সময় গণনা করে আপনার সিস্টেমে 8 সিপিইউ কোর (কমপক্ষে 8 টি থ্রেড) রয়েছে।
এছাড়াও লক্ষ্য করুন যে উপরেরটি EVERY:1
একটি মিথ্যা। wmic
প্রতি সেকেন্ডে যে আউটপুট দেয় না বলে মনে হচ্ছে। সম্ভবত, এটি প্রতিটি প্রতিবেদনের মধ্যে প্রায় 1 সেকেন্ড ঘুমায় এবং প্রতিবেদনটি গণনা করতে যে সময় লাগে তার জন্য ক্ষতিপূরণ দেয় না। সুতরাং অনুশীলনে, এটি প্রতি 1 সেকেন্ড এবং কিছুটা চলতে থাকবে যার অর্থ এই শতাংশগুলি খুব সঠিক এবং কিছুটা অতিরিক্ত বিবেচিত হয় না।
top
) চালনার জন্য ডেটার বিশদ তালিকা সরবরাহ করে , তবে প্রসেস এক্সপ্লোরার