উইন্ডোজ ইউনিক্স "সময়" কমান্ডের সমতুল্য


69

সুতরাং, ইউনিক্সের একটি timeকমান্ড রয়েছে যা ব্যবহারকারীদের তাদের কোড / অন্যান্য জিনিসগুলিকে সময় দিতে দেয়। আমি ভাবছিলাম যে উইন্ডোজ কমান্ড লাইনের অনুরূপ কিছু আছে কিনা।

এছাড়াও, আমি এখানে লিনাক্স কমান্ড লাইন সম্পর্কিত একটি পূর্ববর্তী প্রশ্ন জিজ্ঞাসা করেছি । আমরা কি উইন্ডোজের জন্য একই কাজ করতে পারি? যদি তাই হয়, কিভাবে?


2
উইন্ডোজটির স্ট্যান্ডার্ড সেমিডি.এক্সি রয়েছে তবে আপনি যদি লিনাক্স সংস্করণটির কাছাকাছি কিছু চান তবে পাওয়ারশেলটি পাবেন, এর উপায় আরও ভাল।
গিলারমো সিলিসিও ট্রুবা

আমি গুগলে প্রথম ফলাফলগুলিতে "উইন্ডোজগুলির জন্য কমান্ড সময়" অনুসন্ধান করেছি: http://stackoverflow.com
ডেভিড মিশেল

আমি উইন্ডোজ 7 এ রয়েছি এবং আমি উপরে পোস্ট করা সমাধানটি চেষ্টা করেছি। আমি নিম্নলিখিত ত্রুটির পাবেন: Unable to query system performance data (c0000004)। আমি এটি গুগল করেছিলাম এবং অন্য কারওর কাছে ঠিক একই সমস্যা ছিল, তবে ফোরাম কোনও সমাধানের প্রস্তাব দেয় না। যাইহোক পরামর্শের জন্য ধন্যবাদ। কেউ কি অন্য অংশের জন্য কিছু প্রস্তাব দিতে পারে?
efficiencyIsBliss

@ ইফ, টাইমাইট.এক্সই সার্ভার 2003 এবং এক্সপি আফাইকের জন্য, আমি এটি 7 এর সাথে সামঞ্জস্যপূর্ণ বলে মনে করি না
জন টি

উত্তর:


57

পাওয়ারশেল ব্যবহার করুন

Measure-Command {start-process whateveryouwantexecute -Wait}

আপনার প্রয়োজন অনুসারে সম্পাদিত @ দক্ষতাব্লিজ:

Measure-Command {start-process java -argumentlist "whateverargumentisneeded" -wait}

এখানে আমি যা চেষ্টা করে: Measure-Command {java test <inputfile> -Wait}। আমি সময় সম্পর্কিত পরিসংখ্যানগুলির একটি তালিকা পেয়েছি, তবে কোড থেকে আউটপুট পাওয়া যায়নি। আমি কি ভুল কিছু করছি?
efficiencyIsBliss

@ দক্ষতা: আপনি start-processআদেশটি ভুলে গেছেন ।
সাশা চেদিগোভ

প্রারম্ভিক প্রক্রিয়া: একটি অবস্থানগত পরামিতি খুঁজে পাওয়া যায় না যা আর্গুমেন্ট '। \ 6-8.txt' স্বীকার করে। লাইনে: 1 চর: 31 + পরিমাপ-কমান্ড {স্টার্ট-প্রক্রিয়া <<<< জাভা : PositionalParameterNotFound, Microsoft.PowerShell.Commands.StartProcessCommand`
efficiencyIsBliss

1
পাইথন স্ক্রিপ্টটি ব্যবহার করে এটি চালানোর সময়টি পরিমাপ করার চেষ্টা করছি Measure-Command {start-process \Python27\python test.py -Wait}। প্রক্রিয়াটি চালানোর জন্য এটি একটি নতুন সেন্টিমিডি উইন্ডোটি খোলে, তবে এটি চলমান হয়ে গেলে উইন্ডোটি বন্ধ করে দেয়। আমি স্ক্রিপ্টের আউটপুটটিও দেখতে চাই, তাই আমি কীভাবে উইন্ডোটি খোলা রাখতে পারি?
জন পিটার থম্পসন গার্সিস

2
@ জনপিটারথম্পসন গ্র্যাকস স্টার্ট-প্রসেস সেন্টিমিডলেট
-নজ

21

আমি কোনও কারণে উইন এক্সপি ব্যবহার করছি, timeit.exeআমার পক্ষে কাজ করছে না। আমি অন্য একটি বিকল্প খুঁজে পেয়েছি ptime:

পিটাইম 1.0 - সঠিকভাবে প্রোগ্রামের প্রয়োগের সময় পরিমাপ করুন

পিটাইম কোনও নির্দিষ্ট কমান্ড এবং প্যারামিটার চালাবে এবং নির্বাহের সময় (রান সময়) সেকেন্ডে পরিমাপ করবে, যা সঠিকভাবে 5 মিলিসেকেন্ড বা তার চেয়ে ভাল। এটি একটি স্বয়ংক্রিয় প্রক্রিয়া টাইমার, বা বেনমার্ক উদ্দেশ্যে ব্যবহৃত প্রোগ্রাম টাইমার।


পিটাইম একটি ছোট বাগ আছে। পিটিটাইম সর্বদা 0 টি ত্রুটি স্তরের হিসাবে ফিরে আসে, এমনকি "শিশু" প্রোগ্রাম ত্রুটি সহ প্রস্থান
করলেও

সুপার সহজ এবং নির্ভুল আউটপুট।
janpio

Win10 এ সূক্ষ্ম কাজ করার জন্য মনে হচ্ছে।
mivk

18

আপনি একটি ব্যাচের স্ক্রিপ্ট দিয়ে কিছুটা প্রতারণা করতে পারেন ...

@echo off
echo %time% < nul
cmd /c %1
echo %time% < nul

তারপরে এই স্ক্রিপ্টটির আর্গুমেন্ট হিসাবে আপনার প্রোগ্রামটি চালান ...

টাইমার মাইপ্রোগ্রাম.এক্স.ই.

এবং যুক্তি জন্য ...

টাইমার "myprogram.exe -sw1 -sw2"

উদাহরণ আউটপুট:

17:59:20.02
some text
17:59:20.03

ব্যাচ স্ক্রিপ্টটি আপনার প্যাথ ভেরিয়েবলের কোথাও রাখুন, যেমন C:\Windows\System32এবং নাম দিন timer.cmd। অবশ্যই খুব কম হলেও দ্বিতীয় সেন্টিমিড উদাহরণটি কাঁটাচামচ করার জন্য একটি ছোট্ট পারফরম্যান্স রয়েছে।


সেই প্রম্পটটি কাজ করবে না, @echo off echo %time% < nul cmd /c %1 echo %time% < nul আপনি পরিবেশের পরিবর্তনশীল (?)

কমান্ড লাইন প্যারামিটারগুলির জন্য% 1 এর মতো কোনও ক্লোজিং% নেই। আপনি কি বোঝাতে চেয়েছিলেন?
অ্যান্ড্রু জে ব্রেহম

2
কেন আপনাকে পুনঃনির্দেশিত করা হবে nul মধ্যে echo ? echoইনপুট কখনও পড়েন না।
জোয়ি

1
আপনি এতে পরিবর্তন cmd /c %1করতে পারেন cmd /c %*, যাতে আপনি কমান্ড আর্গুমেন্টের জন্য উদ্ধৃতি চিহ্ন সংরক্ষণ করতে পারেন
stanleyxu2005

3

timeউইন্ডোজে ইউনিক্সের সাথে সরাসরি কোনও সমতুল্য নেই ।

জর্জিয়া বিশ্ববিদ্যালয় ইউনিক্স ব্যবহারকারীদের জন্য উইন্ডোজ কমান্ডের একটি সংক্ষিপ্ত তালিকা রয়েছে

আমি পুরোনো উইন্ডোজ প্রম্পট আদেশ ও .bat স্ক্রিপ্টিং বরং ইউনিক্স শেল তুলনায় সীমিত কিন্তু ফাইল ইত্যাদি উপর লুপিং জন্য কিছু সুযোগ-সুবিধা খুঁজে CommandWindows.com কিছু আছে টিপস

আপনি bashউইন্ডোজে ইনস্টল করতে পারেন (যেমন সাইগওয়িন ইনস্টল করে) বা উইন্ডোজ পাওয়ারশেল শিখতে (যা আমি ধরে নিচ্ছি যে কিছু সমতুল্য করার একটি উপায় আছে)।


2

আপনার কোডের আউটপুট কোনও ফাইলে পাইপ করা যায়: java test <inputfile> | Out-File d:\a.txt

এটি কতক্ষণ সময় নেয় তা পরিমাপের জন্য আপনাকে এটি পরিমাপ-কমন্ডে সজ্জিত করতে হবে:

Measure-Commmand {java test <inputfile> | Out-File d:\a.txt}


2

আপনি যদি পরিমাপ-কমান্ডের সাথে পাওয়ারশেলটি ব্যবহার করার চেষ্টা করেন তবে সচেতন হন যে কিছু অপ্রত্যাশিত গোটাচেস থাকতে পারে। আমার কমান্ড> পুনর্নির্দেশটি ব্যবহার করে কোনও ফাইলে বাইনারি ডেটা লিখেছে তবে পাওয়ারশেল ফাইলের শুরুতে একটি বিওএম যুক্ত করেছে এবং প্রতিটি লেখার পরে একটি সিআরএলএফ লাইন ব্রেক!


1

কিছু কফি আমাকে এটির সাথে আসতে সহায়তা করেছিল:

function time { $Command = "$args"; Measure-Command { Invoke-Expression $Command 2>&1 | out-default} }

এবং যদি আপনি এটির কিছু আউটপুট না করতে চান, তবে কেবল শূন্যস্থান দিয়ে প্রতিস্থাপন করুন:

function timequiet { $Command = "$args"; Measure-Command { Invoke-Expression $Command 2>&1 | out-null} }

আপনি এটি এর মতো ব্যবহার করুন:

PS C:\> time sleep 5


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 990
Ticks             : 49906722
TotalDays         : 5,77624097222222E-05
TotalHours        : 0,00138629783333333
TotalMinutes      : 0,08317787
TotalSeconds      : 4,9906722
TotalMilliseconds : 4990,6722



PS C:\>

1

ব্যবহারের সহজতার জন্য, এখানে চকলেট প্যাকেজটি দেওয়া হয়েছে: https://chocolatey.org/packages/ptime time C:/> choco install ptime

সুবিধাটি ptimeহ'ল এটি ইউনিক্স সংস্করণের মতো কাজ করে এবং কনসোল আউটপুট দেয়, যা Measure-Command { XXX }না (বা কমপক্ষে আমি কীভাবে এটি করব তা জানি না)।


0

একটি 'সময়' কমান্ড পেতে বেশ কয়েকটি ভিন্ন বিকল্প রয়েছে। আমার পছন্দটি কেবল সাইগউইন ইনস্টল করা (যা ইউনিক্সের মতো timeকমান্ড সহ আসে )।

বিকল্পভাবে, আপনি একটি স্ক্রিপ্ট লিখতে পারেন এবং এটি আপনার পথে যুক্ত করতে পারেন (যাতে আপনি পুরো পথটি নির্দিষ্ট না করেই এটি সম্পাদন করতে পারেন)।

আপনার যদি পাওয়ারশেল উপলভ্য থাকে তবে এই স্ক্রিপ্টটি চেষ্টা করুন (ফাইলগুলি কল করার সময় কাজ করে - '। উদাহরণ', ইত্যাদি):

$start = get-date
if ($args.length -gt 1) {
start-process $args[0] $args[1..$args.length] -workingdirectory $pwd -nonewwindow -wait
} else {
start-process $args[0] -workingdirectory $pwd -nonewwindow -wait
}
$end = get-date
$elapsed = $end - $start
write-host $end-$start
# datetime format
write-host $elapsed
# easy-to-read format
echo $elapsed

(উদাহরণস্বরূপ) দিয়ে কোডটি চালান:

time.ps1 python program.py

ব্যাচ ব্যবহার করে , আমি এখান থেকে শীর্ষ উত্তরগুলির মধ্যে উভয়কে পরামর্শ দেব (স্ট্যাকওভারফ্লো.কম) । উভয়কেই কেবল অনুলিপি-আটকানো দরকার। মনে রাখবেন যে আপনি যদি প্যাক্সিডাবলোর দ্রবণটি ব্যবহার করেন তবে আপনার প্রতিস্থাপন করা উচিত

ping -n 11 127.0.0.1 >nul: 2>nul: 

সঙ্গে

%*

0

জ্ঞানমন হ'ল একটি দুর্দান্ত সমাধান যদি আপনার কেবলমাত্র কমান্ডের মোট রান সময় প্রয়োজন হয় না, তবে লাইন পরিমাপের জন্য লাইনও থাকে:

অন্য কমান্ডের স্ট্যান্ডার্ড আউটপুটে টাইমস্ট্যাম্প তথ্য প্রিপেন্ড করতে একটি কমান্ড লাইন ইউটিলিটি। দীর্ঘ-চলমান প্রক্রিয়াগুলির জন্য দরকারী যেখানে আপনি এত দীর্ঘ সময় নিয়ে যাচ্ছেন তার একটি recordতিহাসিক রেকর্ড চাই।

চালিয়ে ইনস্টল করা হয়েছে npm install -g gnomon, তারপরে কেবল এটির মাধ্যমে ব্যবহার করুন command | gnomon

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