পাওয়ারশেল ভি 4, 144 বাইট
$d=date;gjb|rjb
1..20|%{sajb{$x=date;sleep 3;((date)-$x).Ticks/1e7}>$null}
while(gjb -s "Running"){}(gjb|rcjb)-join'+'|iex
((date)-$d).Ticks/1e7
এর $dসমান সেট করে Get-Dateএবং এর সাথে বিদ্যমান যে কোনও কাজের ইতিহাসকে সাফ করে দেয় Get-Job | Remove-Job। তারপরে আমরা লুপ করি 1..20|%{...}এবং প্রতিটি পুনরাবৃত্তি Start-Jobএটি {$x=date;sleep 3;((date)-$x).ticks/1e7}কাজের জন্য স্ক্রিপ্ট ব্লকটি পাস করে চালিত করে (যার অর্থ প্রতিটি কাজ script স্ক্রিপ্ট ব্লকটি কার্যকর করে)। ফিরে >$nullআসা প্রতিক্রিয়াগুলি (যেমন, কাজের নাম, স্থিতি ইত্যাদি) দমন করার জন্য আমরা সেই আউটপুটটি পাইপ করি ।
স্ক্রিপ্ট ব্লকটি সেট $xহয় Get-Date, তারপরে সেকেন্ডের Start-Sleepজন্য 3, তারপরে একটি নতুন Get-Dateপঠন লাগে , বিয়োগ করে $x, পায় .Ticks, এবং 1e7সেকেন্ডগুলি পেতে (স্পষ্টতা সহ) ভাগ করে ।
মূল থ্রেডে ফিরে আসা, যতক্ষণ না কোনও কাজ এখনও -Sতাতাস থাকে "Running", আমরা খালি whileলুপের ভিতরে স্পিন করি । এটি শেষ হয়ে গেলে, আমরা Get-Jobবিদ্যমান সমস্ত কাজের জন্য অবজেক্ট টানতে পারি Receive-Job, এসপিডিউটের সমতুল্য (যেমন, তারা কী আউটপুট দেয়) সমেত টানবে এমন পাইপ, -joinফলাফলগুলি একসাথে +, এবং এটিতে পাইপ iex( Invoke-Expressionএবং অনুরূপ eval)। এটি ফলাফলের ঘুমের সময় ওভারহেড আউটপুট দেবে।
চূড়ান্ত লাইনটি একই রকম, এটি একটি নতুন তারিখ পায়, মূল তারিখের স্ট্যাম্পটি বিয়োগ করে $d, পায় .Ticks, এবং 1e7নির্বাহের মোট সময়কে ভাগ করে দেয়।
বিশেষ দ্রষ্টব্য
ঠিক আছে, সুতরাং এটি নিয়মগুলির সামান্য বাঁকানো । স্পষ্টতই প্রথম সম্পাদনের সময়, পাওয়ারশেলকে বিভিন্ন থ্রেড ক্রিয়াকলাপের জন্য ডিস্ক থেকে .NET অ্যাসেম্বলিগুলির একটি গুচ্ছ লোড করতে হবে কারণ সেগুলি ডিফল্ট শেল প্রোফাইলের সাথে লোড হয় না। পরবর্তী মৃত্যুদণ্ড কার্যকর করা, কারণ সমাবেশগুলি ইতিমধ্যে স্মৃতিতে রয়েছে, ঠিক আছে। যদি আপনি শেল উইন্ডোটি দীর্ঘসময় অলসভাবে ফেলে রাখেন, আপনি পাওয়ারশেলের অন্তর্নির্মিত আবর্জনা সংগ্রহ বরাবর আসবেন এবং সেগুলি অ্যাসেমসিলগুলি আনলোড করুন , পরবর্তী ক্রিয়াকলাপটি পুনরায় লোড হওয়ার সাথে সাথে পরবর্তী কার্যনির্বাহীটিকে দীর্ঘ সময় দিতে হবে। আমি এই কাছাকাছি উপায় সম্পর্কে নিশ্চিত নই।
আপনি এটি নীচের রানগুলিতে কার্যকর সময়ে দেখতে পাবেন। আমি একটি নতুন শেল শুরু করেছি, আমার গল্ফ ডিরেক্টরিতে নেভিগেট করেছি এবং স্ক্রিপ্টটি সম্পাদন করেছি। প্রথম রানটি ভয়াবহ ছিল, তবে দ্বিতীয়টি (অবিলম্বে মৃত্যুদন্ড কার্যকর করা) ভাল কাজ করেছিল। আমি আবর্জনা সংগ্রহের জন্য কয়েক মিনিটের জন্য শেল নিষ্ক্রিয় রেখে দিয়েছিলাম এবং তারপরে সেই রান আবার দীর্ঘ হয় তবে পরবর্তী রানগুলি আবার ঠিকঠাক কাজ করে।
উদাহরণ রান
Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.
PS H:\> c:
PS C:\> cd C:\Tools\Scripts\golfing
PS C:\Tools\Scripts\golfing> .\wait-a-minute.ps1
63.232359
67.8403415
PS C:\Tools\Scripts\golfing> .\wait-a-minute.ps1
61.0809705
8.8991164
PS C:\Tools\Scripts\golfing> .\wait-a-minute.ps1
62.5791712
67.3228933
PS C:\Tools\Scripts\golfing> .\wait-a-minute.ps1
61.1303589
8.5939405
PS C:\Tools\Scripts\golfing> .\wait-a-minute.ps1
61.3210352
8.6386886
PS C:\Tools\Scripts\golfing>