উইন্ডোজের জন্য পিএস অক্স সমতুল্য?


0

আমার একটি পিএইচপি প্যানেল রয়েছে যা একটি লিনাক্স বাক্স থেকে উইন্ডোজ বাক্সে পোর্ট করা হয়েছে। প্যানেলে এটি একটি নির্দিষ্ট প্রক্রিয়াটির জন্য আপটাইম দেখায় যাতে সিস্টেমটিতে প্রোগ্রামটি কতক্ষণ চলছে তা ব্যবহারের মাধ্যমে তা জানানো যায়। লিনাক্সে এটি সহজ ছিল কারণ সময়টি আউটপুট করার জন্য আমি কেবল একটি পিএস অক্সকে পাইপ এবং রেজিেক্স করতে পারি। তবে উইন্ডোজে আমি কীভাবে এটি করব তা অনুমান করতে পারছি না। আমি এই কমান্ডটি প্রোগ্রাম সম্পর্কে তথ্য আউটপুট করতে ভেবেছিলাম যে সিপিইউ সময়টি আমার যা চাইবে তা ভেবে: tasklist /fi "imagename eq program.exe" /v

ঠিক আছে, এটি সিপিইউয়ের সময়টি পরিমাপ করে যে প্রক্রিয়াটি কোনও এবং সমস্ত সিপিইউতে কতটা সময় কাটিয়েছে, প্রক্রিয়া চলাকালীন কোনও নির্দিষ্ট সময়ে কতগুলি থ্রেড চলছে তার উপর নির্ভর করে কোনটি বাস্তব সময়ের চেয়ে অনেক বেশি আলাদা হতে পারে।

তাহলে আমি কীভাবে সিএমডি ব্যবহার করে কোনও প্রক্রিয়া চালানোর জন্য আসল বিশ্বের শর্তে ব্যবহার করতে পারি?


সুতরাং আপনি প্রক্রিয়াটি শুরু হওয়ার পরে যে সময়টি অতিবাহিত হয়েছে তা জানতে চান (সেই সময়ে এটি ব্যস্ত থাকলে, বা নিষ্ক্রিয়, ইত্যাদি নির্বিশেষে)?
ʜιᴇcʜιᴇ007


"বিচ্ছিন্ন সময়" প্রক্রিয়াটির জন্য দুটি সমাধান দেওয়ার উত্তর সরবরাহ করেছে
ডেভিডপস্টিল

উত্তর:


4

বাস্তব বিশ্বের নিরিখে আমি কীভাবে একটি প্রক্রিয়া চালানোর সময় পেতে পারি?

ধৃষ্টতা:

  • "রিয়েল ওয়ার্ল্ড টার্মস" দ্বারা আপনি আসলে অতিবাহিত সময়কে বোঝান

দুটি সম্ভাবনা রয়েছে:


pslist সমাধান

উইন্ডোজ সিসইন্টার্নাল থেকে পিএসলিস্ট ব্যবহার করুন ।

নোটপ্যাড ++ এর জন্য উদাহরণ আউটপুট:

F:\test>"c:\apps\WSCC\Sysinternals Suite"\pslist notepad++

pslist v1.3 - Sysinternals PsList
Copyright (C) 2000-2012 Mark Russinovich
Sysinternals - www.sysinternals.com

Process information for HAL:

Name                Pid Pri Thd  Hnd   Priv        CPU Time    Elapsed Time
notepad++          8064   8   9  508  46828     0:02:05.003   148:52:29.866

আউটপুট পরিষ্কার করতে নিম্নলিখিত ব্যাচ ফাইলটি (উদাহরণ.কমডি) ব্যবহার করুন:

@echo off
setlocal enabledelayedexpansion
for /f "usebackq skip=3 tokens=8" %%i in (`pslist notepad++ 2^> nul`) do (
  echo elapsed time: %%i
  )
endlocal

আউটপুট:

F:\test>example.cmd
elapsed time: 148:54:15.628

F:\test>

পাওয়ারশেল সমাধান

নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্ট (getProcessElapsedTime.ps1) ব্যবহার করুন:

$ts=((get-date) - (get-process notepad++).StartTime)
$hours = ($ts.Days * 24 + $ts.Hours).ToString("00")
$minutes = $ts.Minutes.ToString("\:00")
$seconds = $ts.Seconds.ToString("\:00")
$milliseconds = $ts.Milliseconds.ToString("\.000")
Write-Output ($hours + $minutes + $seconds + $milliseconds)

নোটপ্যাড ++ এর জন্য উদাহরণ আউটপুট:

PS F:\test> .\GetProcessElapsedTime
148:54:46.667
PS F:\test>

দাবি পরিত্যাগী

আমি কোনওভাবেই পিএসলিস্টের সাথে সম্পৃক্ত নই, আমি এই সফ্টওয়্যারটির একমাত্র শেষ ব্যবহারকারী।


পাওয়ারশেল সমাধান যুক্ত করতে উত্তর আপডেট হয়েছে।
ডেভিডপস্টিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.