সর্বনিম্ন কোড সিপিইউ স্ট্রেস-পরীক্ষক ...


28

ভূমিকা

আপনার প্রসেসরের চাপ-পরীক্ষার জন্য উচ্চ সিপিইউ লোড তৈরি করতে সক্ষম প্রচুর উপযোগিতা রয়েছে। মাইক্রোসফ্ট উইন্ডোতে, আপনি এমনকি অন-বোর্ড ব্যবহার করতে পারেন calculator.exe, প্রচুর সংখ্যার মতো সন্নিবেশ করতে পারেন এবং আপনার সিপিইউগুলিকে ওভারটাইমের কাজ করতে বেশ কয়েকবার 999999999চাপতে n!পারেন।

তবে আপনি যদি নিজেই এটি তৈরি না করেন তবে সমাধানের কী আছে?

মিশন

আপনার মিশন - যদি আপনি এটি গ্রহণ করতে চান - এটি গ্রহে সবচেয়ে ছোট সিপিইউ স্ট্রেস-টেস্ট সরঞ্জাম তৈরি করা।

অবশ্যই…

  1. বাতিল হওয়া অবধি 100% সিপিইউ লোড উত্পাদন করতে হবে
  2. স্ট্রেস-টেস্টটি যে সেকেন্ডে চালানো উচিত সেটির প্রতিনিধিত্ব করে অবশ্যই একটি সংখ্যার ইনপুট নিতে হবে take
  3. ব্যবহারকারীর ইন্টারঅ্যাকশন (কিপ্রেস, টার্মিনাল উইন্ডোটি ক্লোজিং বা এর মতো কিছু) মঞ্জুর করতে হবে যা ব্যবহারকারীকে স্ট্রেস-টেস্ট বাতিল করতে এবং / অথবা প্রোগ্রামটি ছেড়ে দিতে সক্ষম করে তোলে
  4. মাইক্রোসফ্ট উইন্ডোজ, ম্যাক ওএসএক্স এবং / অথবা লিনাক্সকে অবশ্যই টার্গেট করতে হবে
    (এমনকি একটি হ্যামস্টারও কমোডোর 64৪ এর উপরে চাপ দিতে পারে ... সুতরাং, আপনাকে অবশ্যই বর্তমান অপারেটিং সিস্টেমকে টার্গেট করতে হবে ))

না অবশ্যই…

  1. তৃতীয় পক্ষের প্রোগ্রাম বা সরঞ্জামগুলি ব্যবহার করা উচিত নয় যা প্রত্যাশিত কার্যকারিতা প্রতিস্থাপন করে।
    (পছন্দ মতো শর্টকাট system('cpuStressThing.exe')প্রস্তাব আপনার প্রস্তাব অযোগ্য ঘোষণা করে।)

পারে ...

  1. প্রত্যাশিত 100% সিপিইউ লোড উত্পাদন করতে যে কোনও পন্থা / অ্যালগরিদম / কার্যকারিতা ব্যবহার করতে পারে
  2. যে কোনও প্রোগ্রামিং বা স্ক্রিপ্টিং ভাষা ব্যবহার করতে পারে
    (যতক্ষণ না এটি চালিয়ে এটির কার্যকারিতাটির ব্যবহারিক যাচাইকরণের অনুমতি দেয়)

জয়ের শর্ত

সম্ভব সবচেয়ে ছোট উত্সকোড উপস্থাপন করুন। বিজয়ী হ'ল সর্বাধিক ন্যূনতম (আকারে) উত্সকোড যা উপরিউক্ত "অবশ্যই" এবং "আবশ্যক নয়" শর্তাবলী মেনে চলে। এখন, সেই বাচ্চাকে পোড়াও…


সম্পাদনা

প্রশ্নটি যেহেতু মন্তব্যে এসেছে ... আপনার কেবলমাত্র 1 টি সিপিইউ কোর লক্ষ্য করা দরকার। আমি অবশ্যই আপনি একটি বহু-কোর সমাধান উত্পাদন আশা করি না। সর্বোপরি, এটি মজা করা উচিত - কাজ নয়।


5
"একটি কোরের 100%" কি যথেষ্ট, নাকি আপনার অর্থ "মাল্টি-কোর সিপিইউয়ের 100%"?
টোবিয়া

টোবিয়া হ্যাঁ, 1 টি কোর যথেষ্ট। আমি আমার প্রশ্নটি বিশেষভাবে সেই তথ্য অন্তর্ভুক্ত করার জন্য সম্পাদনা করেছি। আমাকে এ বিষয়টি নির্দেশ করার জন্য ধন্যবাদ যে এটি খুব বেশি পরিষ্কার ছিল না।
ই-সুশি

3
ক্রিপ্টোকারেন্সি
মাইনারদের

2
@ দ্য ডক্টর যদি আপনি এটি বর্ণনা করতে পারেন তবে আমার অতিথি হয়ে উঠুন! এটি অবশ্যই ক্রিপ্টোকারেন্সি মাইনারকে দেখতে আকর্ষণীয় হবে যা ফাইলাইজে 36 বাইট বাশ স্ক্রিপ্টকে বীট করতে সক্ষম (উদাহরণস্বরূপ) ।
ই-

সমস্যাটি হ'ল বেশিরভাগ খনিবিদরা কয়েক হাজার লাইনের কোড।
TheDoctor

উত্তর:


28

বাশ এবং স্ট্যান্ডার্ড ইউটিলিটিস, 36 31 22 29 28 26 বাইট

yes :|sh&sleep $1;kill $!

2
এটি একটি বাশ কোডের জন্য দেখতে খুব সুন্দর লাগছে! সত্যিই এটি একটি দুর্দান্ত উত্তর!
ইসমাইল মিগুয়েল

আপনি প্রয়োজন হবে না :যে do :; done। আমি do;doneকাজটি পেয়েছি - যা আপনাকে 2 বাইটে টানবে। আমার বাশ সমাধানের প্রায় অর্ধেক দৈর্ঘ্যের জন্যও +1 (আমি ভুলে যাওয়ায় কোনও ভাল কারণেই আমি এটি অত্যধিক জটিল করে তুলেছি $!)।
ক্রিস জে

1
@ChrisJ - যে আমার জন্য কাজ করে না: bash: syntax error near unexpected token `;'। আমি এই ব্যাশ সংস্করণ চেষ্টা করেছি: 3.00.15(1)-release (x86_64-redhat-linux-gnu), 3.2.48(1)-release (x86_64-apple-darwin12),4.2.25(1)-release (x86_64-pc-linux-gnu)
ডিজিটাল ট্রমা

1
@ ক্রিসজে - আমার ধারণা আপনি kshতখন 34 বাইট উত্তর পেয়েছেন ;-)
ডিজিটাল ট্রমা

2
আমি সেখানে একটি $1জায়গায় রেখেছি 10, কেবল এটি একটি স্ক্রিপ্ট তৈরি করতে যা "সংখ্যার ইনপুট নেয়"।
টোবিয়া

20

বাশ / iputils (লিনাক্স), 14 বাইট

ping6 -fw$1 ::

বন্যা-পিংস IPv6 নাল ঠিকানা, -W শেষ সময়সীমা শেষ না হওয়া অবধি

সাবধান - আমার পরীক্ষার ভিএম-তে 55-60% সিপিইউ খায়

সম্পাদনা: - আমি আমার সতর্কতা প্রত্যাহার। যদিও topপ্রতিবেদনটি ping6প্রক্রিয়াটি কেবল 55-60% সিপিইউ গ্রাস করে, আমি মোট সিপিইউ নিষ্ক্রিয় শতাংশ (2 কোর ভিএম) পদ্ধতির শূন্য দেখতে পাচ্ছি। সম্ভবত এটি কারণ প্যাকেটগুলি পরিচালনা করার কারণে কার্নেলটিতে প্রসেসিংয়ের একটি ভাল চুক্তি চলছে।

দ্রষ্টব্য - অবশ্যই রুট হিসাবে চালানো উচিত। @ টোবিয়ার মন্তব্য হিসাবে, এটি এমন কোনও কিছুর জন্য যুক্তিসঙ্গত প্রয়োজনীয়তা বলে মনে হচ্ছে যা সিপিইউকে জাগিয়ে তুলবে। এবং ওপি মন্তব্যগুলিতে এটি অনুমোদিত করেছে।


6
+1 টি। আমি সরিয়ে ফেলব sudo এবং কেবল ঠিক জানিয়ে দেব যে পরীক্ষাটি অবশ্যই রুট হিসাবে চালানো উচিত। এটি এমন কোনও কিছুর জন্য যুক্তিসঙ্গত প্রয়োজন বলে মনে হয় যা সিপিইউকে দখল করবে।
টোবিয়া

@ তোবিয়া - ধন্যবাদ - আমি মনে করি আপনি কোনও কিছুর উপরে এসেছেন ;-)
ডিজিটাল ট্রমা

ping -6 :: -t-> কেবলমাত্র যদি উইন্ডোতে এটি আমার সিপুটিকে বন্য করে তোলে ... এটি উইন্ডোতে কেবল লিনাক্স সমতুল্য, যা কেবল ত্রুটি দেয় এবং সিপুটিকে 1% লোড করে না! আমি একটি কোর 2 কোয়াড 2.63GHz এ উইন্ডোজ 8 প্রো x64 ব্যবহার করছি।
ইসমাইল মিগুয়েল

@ ইসমাইলমিগুয়েল - হ্যাঁ - এটি পরীক্ষা করার জন্য আমার কাছে উইন্ডো নেই। আমি কেন শিরোনামে "লিনাক্স" উল্লেখ করেছি তা ঠিক ;-)
ডিজিটাল ট্রমা

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

9

Elf32 স্ট্যান্ডেলোন বাইনারি - 86 বাইট

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

বাইনারি ডাউনলোড: http://ge.tt/3m6h2cK1/v/0?c

হেক্স ডাম্প:

0000000: 7f45 4c46 0101 0100 0000 0000 0000 0000  .ELF............
0000010: 0200 0300 0100 0000 5480 0408 3400 0000  ........T...4...
0000020: 0000 0000 0000 0000 3400 2000 0100 0000  ........4. .....
0000030: 0000 0000 0100 0000 0000 0000 0080 0408  ................
0000040: 0080 0408 5600 0000 5600 0000 0500 0000  ....V...V.......
0000050: 0010 0000 75fe                           ....u.

এটি একটি নিজস্ব ন্যূনতম এল্ফ শিরোনাম সহ একটি asm ফাইল তৈরি করে এবং ldপুরোপুরি ব্যবহার এড়িয়ে যায় is

এসেম্বলি:

BITS 32

              org     0x08048000

ehdr:                                                 ; Elf32_Ehdr
              db      0x7F, "ELF", 1, 1, 1, 0         ;   e_ident
times 8       db      0
              dw      2                               ;   e_type
              dw      3                               ;   e_machine
              dd      1                               ;   e_version
              dd      _start                          ;   e_entry
              dd      phdr - $$                       ;   e_phoff
              dd      0                               ;   e_shoff
              dd      0                               ;   e_flags
              dw      ehdrsize                        ;   e_ehsize
              dw      phdrsize                        ;   e_phentsize
              dw      1                               ;   e_phnum
              dw      0                               ;   e_shentsize
              dw      0                               ;   e_shnum
              dw      0                               ;   e_shstrndx

ehdrsize      equ     $ - ehdr

phdr:                                                 ; Elf32_Phdr
              dd      1                               ;   p_type
              dd      0                               ;   p_offset
              dd      $$                              ;   p_vaddr
              dd      $$                              ;   p_paddr
              dd      filesize                        ;   p_filesz
              dd      filesize                        ;   p_memsz
              dd      5                               ;   p_flags
              dd      0x1000                          ;   p_align

phdrsize      equ     $ - phdr

section .text
global  _start
_start:       jnz     _start

filesize      equ     $ - $$

দিয়ে নির্মিত nasm -f bin tiny_cpu_stresser_elf32.asm -o tiny_cpu_stresser_elf32


7

ব্যাশ বিল্টিন কেবল 20 বাইট

ulimit -t $1;exec $0

@ ই-সুশি একটি দ্রুত টার্মিনাল দিয়ে চেষ্টা করুন, যেমন একটি পাঠ্য কনসোল বা এক্সটার্ম বা আরএক্সভিটি
জিওফ রেডি

6

সি, 52

t;main(s){for(scanf("%d",&s),t=time();time()-t<s;);}

প্রস্থান করতে Ctrl + C টিপুন।

এখানে চিত্র বর্ণনা লিখুন


আপনি যদি পিএইচপি করে থাকেন তবে আপনি জিতবেন! কেবল $i=<>অংশটি সরান এবং <?শুরুতে যুক্ত করুন এবং আপনি যেতে ভাল!
ইসমাইল মিগুয়েল

5

পার্ল, 32

for($i=<>,$t=time;time-$t<$i;){}

এখন বিব্রতকর অংশ: আমি মূর্খতার $t=timeসাথে সামনে রেখেছিলাম $i=<>এবং কয়েক সেকেন্ডের প্রথমদিকে কেন বেরিয়ে আসে তা নির্মমভাবে জানার চেষ্টা করছিলাম।

আবার, প্রস্থান করতে Ctrl + C।

এখানে চিত্র বর্ণনা লিখুন


5

ইউনিক্স সি, 47

main(int a,char**b){alarm(atoi(b[1]));for(;;);}

কমান্ড লাইনে সময় পাস করুন। বাধা কী (Ctrl-C) অবতরণ করে।


3
যদি আপনি @ টেকের scanfকৌশলটি ব্যবহার করেন তবে আপনি এটি 39-এ নামাতে পারবেন:main(a){for(scanf("%d",&a),alarm(a);;);}
ডেভ

4

স্মার্টটাক (স্মলটালক / এক্স), 34

ইনপুট: এন; সিটিআরএল-সি বা সিএমডি- দিয়ে বাধা দিন।

[[]loop]valueWithTimeout:n seconds

গল্ফ আরও ভাল করতে পারে, যদি দিনের মধ্যে পরিমাপ করা হয় ;-) (কেবল মজা করা):

[[]loop]valueWithTimeout:n days

এখানে চিত্র বর্ণনা লিখুন

বা কমান্ড লাইন থেকে: এখানে চিত্র বর্ণনা লিখুন


4

এটি এটির জন্য গুরুতর প্রচেষ্টা নয়, তবে ...

বাশ, 12 বাইট

:(){ :|:&};:

যেমন উইকিপিডিয়ায় পাওয়া যায় ।

সতর্কতা: ক্ষতিকারক কোড, এটি আপনার কম্পিউটারে চালাবেন না!


প্রযুক্তিগতভাবে:
- সিস্টেম ক্রাশ না হওয়া পর্যন্ত এটি 100% সিপিইউ লোড উত্পাদন করে;
- ব্যবহারকারীর ইন্টারঅ্যাকশনটিকে এটি বন্ধ করতে দেয় (যদি আপনি সমস্ত কাঁটাচামচ মেরে পরিচালনা করেন তবে আপনি আসলে এটি থামাতে পারেন ...);
- আপনি এটিকে একটি সংখ্যাসূচক ইনপুট দিতে পারেন যা এটি চালানো উচিত সেকেন্ডের সংখ্যাটি উপস্থাপন করে তবে এটি এটি ব্যবহার করবে না।


4

পিএইচপি 43 40 বাইট:

আমি আশা করি এটি একটি গ্রহণযোগ্য উত্তর:

set_time_limit ($: _ অনুরোধ [ 'T']); যখন (0!);

<?for(set_time_limit($_REQUEST['t']);;);

আমি এটি করতে পারি: <?for(set_time_limit($_POST['t']);;);তবে এটি নমনীয়তা এবং 3 বাইট হারাবে।


এবং আমি ঠকাই এবং এই মত কাজ করতে পারে: <?for(set_time_limit($_REQUEST[t]);;);। এটি 2 বাইট বন্ধ করে দেয়, তবে এটি কোনও "স্ট্যান্ডার্ড" সমাধান নয়। গেমটি সুষ্ঠু রাখতে দিন।


@ ফ্রিয়েডবয় এবং @ প্রিমো প্রস্তাবিত হিসাবে আপনি এই সমাধানটি (34 বাইট )ও ব্যবহার করতে পারেন:

<?for(set_time_limit($argv[1]);;);

এটি কনসোল থেকে এটির জন্য এটির কল করে এটি ব্যবহারের অনুমতি দেয়:

php <filename> <time in seconds>

আমি যেমন বলেছি, আমি কনসোল সমাধানটি লক্ষ্যবস্তু করছি না, তবে তাদের এইটির জন্য কৃতিত্ব পেতে হবে।

আর একটি উত্তর এই "দানব" হতে পারে, যা উভয় উত্তরই একত্রিত হয়েছে:

<?for(set_time_limit($argv[1]|$_REQUEST['t']);;);

কনসোল না করে পিএইচপি-তে কী প্রেসগুলি পাওয়া অসম্ভব, যা আমি টার্গেট করছি না!

এটি বন্ধ করতে, আপনাকে অবশ্যই প্রক্রিয়াটি বাতিল করতে হবে (পৃষ্ঠাটি লোড করা থেকে থামানো কোড থামিয়ে দিতে পারে)!

প্লাস হিসাবে এটি অ্যান্ড্রয়েডেও কাজ করে! আপনি যদি পিএইচপি সার্ভার ইনস্টল করেন (গুগল প্লেতে বিনামূল্যে)।

এটি কার্যকর করতে, কেবল এটির মতো করুন:

আপনি একটি। Php ওয়েবপৃষ্ঠা তৈরি করেন এবং ?t=<time in seconds>url এর শেষে যুক্ত হন বা একটি পোস্ট জমা দিন (একটি ফর্ম বা এমনকি অজ্যাক্স ব্যবহার করে)।


1
@ ই-সুশী আমি উত্তরটি স্থির করেছি এবং 3 বাইট হ্রাস করেছি। বাশ সমাধানের মতো ছোট নয়, তবে বন্ধ। এবং নমনীয়তা সহ!
ইসমাইল মিগুয়েল

কম্যান্ড লাইন থেকে চালান: প্রতিস্থাপন $_REQUEST['t']সঙ্গে $argv[1]: তারপর একে ডাকতে php -f cpustresstest.php <timelimit>এবং পরিত্যাগ ^C
ডিসেন্ট ড্যাবলার

$_GETপরিবর্তে ব্যবহার করবেন না কেন $_REQUEST? 4 বাইট এবং আপনি GETযেভাবেই ব্যবহার করছেন
ক্রিস্টোফার সল-স্টোরগার্ড

@ ক্রিস্টোফারএসহানসেন কারণ আমার কোডের নমনীয়তা মারাত্মকভাবে আহত হবে।
ইসমাইল মিগুয়েল

@ ফ্রিয়েডবয় এটি একটি ভাল ধারণা বলে মনে হচ্ছে তবে আমি যেমন বলেছিলাম, আমি কনসোলকে লক্ষ্য করছি না।
ইসমাইল মিগুয়েল

3

ব্রেইনফাক / বর্ধিত ব্রেনফাক : 3

+[]

এটি বাতিল না হওয়া পর্যন্ত এটি একটি কোরতে 100% সিপিইউ ব্যবহার করবে। সমস্ত ব্রেনফাক প্রোগ্রাম বৈধ ইবিএফ প্রোগ্রাম।

জোজোটেজ এলআইএসপি : 7 15 19

ছোট ড্রাইভার ব্যবহার করার সময়।

(:'r s) ; redfine read in the read-eval-print-loop

ড্রাইভার ব্যতীত একক প্রকাশ হিসাবে: 15

((:'L(\()(L))))     ; setq a loop function and execute it    

ব্যবহার: echo '((\(L)(L))(\()(L)))' | jitbf zozotez.bf


3

পার্ল - 14 বাইট

alarm<>;{redo}

সেকেন্ডে SIGALRMপ্রেরণ করতে সেট করে input, যা স্ক্রিপ্টটি সমাপ্ত করে। এর মধ্যে, এটি একটি ব্যস্ত-অপেক্ষায় স্পিন করে।

নমুনা ব্যবহার:

$ echo 4 | perl stress.pl
Terminating on signal SIGALRM(14)

পার্ল - 12 (+1) বাইট

কমান্ড লাইন বিকল্পগুলি প্রতিটি বাইট হিসাবে গণনা করা হয়, এটি ব্যবহার করে এটি 13 বাইটে হ্রাস করা যেতে পারে -n:

alarm;{redo}

নমুনা ব্যবহার:

$ echo 4 | perl -n stress.pl
Terminating on signal SIGALRM(14)

প্রস্থানের প্রয়োজনীয়তাকে সংক্ষিপ্তভাবে পূরণ করতে সিগন্যালের চতুর ব্যবহারের জন্য +1।
যান্ত্রিক শামুক

3

লিনাক্সে x86_64 সমাবেশ - 146 (উত্স), 42 (একত্রিত কোড)

এনএএসএম মিনিফাইড উত্স (146 বাইট):

xor rdi,rdi
mov rcx,[rsp+16]
mov rcx,[rcx]
l:
sub cl,'0'
jl k
imul rdi,10
movsx rdx,cl
add rdi,rdx
ror rcx,8
jmp l
k:
mov rax,37
syscall
s:
jmp s

কমান্ড লাইনে একটি পরামিতি গ্রহণ করে সীমাতে (0, 9999999] চালানোর জন্য সেকেন্ডের সংখ্যা নির্দিষ্ট করে; সাধারণ Ctrl-C দিয়ে বাধা দেওয়া যায়।

আপনি এটি একত্রিত করতে পারেন

nasm -f elf64 -o stress.o stress.asm && ld -o stress stress.o

তত্ত্বগতভাবে এটি শুরুতে global _startএকটি _start:লেবেল যুক্ত করার পরে প্রয়োজন হবে , তবে ldসামান্য গোলমাল দিয়ে এটি নিজেই ঠিক করার ব্যবস্থা করে।

সংশ্লিষ্ট মেশিন কোড (42 বাইট):

00000000  48 31 ff 48 8b 4c 24 10  48 8b 09 80 e9 30 7c 11  |H1.H.L$.H....0|.|
00000010  48 6b ff 0a 48 0f be d1  48 01 d7 48 c1 c9 08 eb  |Hk..H...H..H....|
00000020  ea b8 25 00 00 00 0f 05  eb fe                    |..%.......|
0000002a

( নির্দেশ nasmযুক্ত করে উত্পন্ন BITS 64)

কিছুটা বেশি পঠনযোগ্য সংস্করণ:

global _start

_start:
    xor rdi,rdi
    mov rcx,[rsp+16]
    mov rcx,[rcx]
argparse:
    sub cl,'0'
    jl alarm
    imul rdi,10
    movsx rdx,cl
    add rdi,rdx
    ror rcx,8
    jmp argparse
alarm:
    mov rax,37
    syscall
loop:
    jmp loop

2

পাইথন, 58 55 51

বাহ ... সি এর চেয়ে লম্বা। আরও ভাল উপায় হতে পারে। এখনও একটি বাচ্চা লম্বা, তবে এটি কমপক্ষে সি সলিউশনকে মারবে!

import time;t=time.time;u=t()+input()
while t()<u:1

1
হাহাহা, আমি আপনার প্রথম বাক্যটি পছন্দ করি। ব্যক্তিগতভাবে আমি একটি সি উত্তরকে সমান হিসাবে বিবেচনা করি।
ব্যবহারকারী 12205

1
@ace (সবেমাত্র) স্থির!
বব

2
এখন অন্য সি সমাধান আপনার প্রহার!
ব্যবহারকারী 12205

1
@ অন্যদিকে, আমি হাল ছেড়ে দিয়েছি, কমপক্ষে এটি পোর্টেবল! : পি (আমি আসলে আগে সিগালর্মের দিকে চেয়েছিলাম, তবে সিগন্যাল স্থাপন এবং ব্যবহার করা খুব ব্যয়বহুল ... পাইথন যখন তার পাছা প্রয়োজন হয় তখন তার চেয়ে বরং শব্দযুক্ত হতে পারে: [)
বব

2

জাভা - 154 148 186

অদ্ভুত ত্রুটি আমার Thread.sleep()অংশ খেয়েছে

public class Z{public static void main(String[]a) throws Exception{new Thread(){public void run(){for(;;);}.start();Thread.sleep(Byte.valueOf(a[0])*1000);System.exit(0);}}

এবং আরও পাঠযোগ্য সংস্করণ:

public class Z {
    public static void main(String[] a) throws Exception {
        new Thread() {
            public void run() {
                for (;;)
                    ;
            }
        }.start();
        Thread.sleep(Byte.valueOf(a[0]) * 1000);
        System.exit(0);
    }
}

একটি দুর্দান্ত new Threadসীমাহীন লুপ ( for(;;);) এর পরে একটি মূল থ্রেড এ thread.sleep()এবং System.exit(0)প্রস্থান করার জন্য টাইমআউট শেষ করে; সিআরটিএল-সি প্রস্থান করে, খুব কম সেমিডলাইন শর্টহ্যান্ড এটি করতে সক্ষম হয় নি exit()। দুর্ঘটনা অভ্যাস কাজ;


2

ব্যাচ, 2 টি অক্ষর

%0

সংক্ষেপে, প্রোগ্রাম ক্রমাগত নিজেকে বারবার শুরু করে। আপনার ফলাফলগুলি পৃথক হতে পারে, প্রসেসরের টাস্ক বরাদ্দের অগ্রাধিকারের কারণে, তবে এটি আমার জন্য কার্যকর।


2

পাওয়ারশেল, 18 54 50 বাইট

সমস্ত সিপিইউ কোরগুলির জন্য 100% লোড উত্পাদন করতে।

for($s=date;($s|% AddS* "$args")-ge(date)){sajb{}}
  • স্ক্রিপ্টটি আর্গুমেন্ট হিসাবে সেকেন্ডে সময় নেয়।
  • | AddS*হয় শর্টকাট জন্য .AddSeconds()পদ্ধতি।
  • sajbStart-Jobসেমিডলেটের জন্য উপনাম।

1
এটি কীভাবে প্রয়োজনীয়তা পূরণ করে 2 ( must take a numeric input, representing the number seconds the stress-test should run)?
25urous

ধন্যবাদ। স্থির ..
mazzy

1

লিনাক্স এস ও স্ট্যান্ডার্ড ইউটিলিটিস, 14

সাম্প্রতিক gnu কোরুটিলে একটি timeoutইউটিলিটি রয়েছে যা সহায়ক:

 timeout $1 yes

1
আমার জন্য 100% সিপিইউয়ের কাছাকাছি কোথাও নেই; এটি মুদ্রণ করে অনেকটা রীতিমতো ছড়িয়ে পড়েছে আমার মনে হয় ... অন্য কোন আদেশ আছে কি?
নিক টি

timeout $1 yes :|sh- 19 সম্ভবত আপনি সবচেয়ে সেরা এবং 100% ব্যবহার করতে পারেন। আমার উত্তরের জন্য এটি চুরি করার প্রলোভন, তবে আমি খেলোয়াড়ের মতো হব :)
ডিজিটাল ট্রমা


1

যান, 215 212 193 বাইট (পূর্ণ)

package main
import(."runtime"
f"flag"
."strconv"
."time")
func main(){f.Parse()
c:=NumCPU()*2
t,_:=Atoi(f.Arg(0))
GOMAXPROCS(c)
for;c>0;c--{go(func(){for{Now()}})()}
<-After(Duration(t)*1e9)}

বোনাস, সমস্ত সিপিইউতে জোর দেয়।

Now()লুপ নির্ধারণকারী মধ্যে পদাঘাত নেই, Nowসবচেয়ে কম ফাংশনের নাম আমি আমার নামস্থান খুঁজে ছিল

যদি আমি রান করি go fmtতবে আকারটি 286 277 254 বাইটে বেড়ে যায়



1

সমাবেশ: 16 বাইট

_start:jg _start

সম্পাদনা করুন: একটি সংখ্যার ইনপুট নেওয়ার প্রয়োজনীয়তা লক্ষ্য না করে, আমি দাবি করতে যাচ্ছি যে এটি কমান্ডলাইনে নিয়েছে, তবে এটিকে উপেক্ষা করে =)


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

ওহ ... প্রশ্নের সেই অংশটি পুরোপুরি পড়ুন: /
দাঙ্গা

1

ডস ব্যাচ - 5 বাইট

%0|%0

ডস ব্যাচ - 8 বাইট

%0|%0&%0

দ্বিতীয়টি হ'ল কুখ্যাত শ ফর্কবম্বের অনুবাদ।

Ctrl + C প্রোগ্রামটি বিরতি দেয় (আপনি যদি সেটিংসগুলিকে সামান্য টুইট না করেন)।


1

সি #, 118

using a=System.DateTime;class b{static void Main(string[]c){var d=a.Now.AddSeconds(int.Parse(c[0]));while(d>a.Now){}}}

uncompressed

using a = System.DateTime;
class b 
{ 
    static void Main(string[] c) 
    {
        var d = a.Now.AddSeconds(int.Parse(c[0]));
        while (d > a.Now) { } 
    } 
}

এটি আর্গুমেন্ট হিসাবে একটি সংখ্যা প্রয়োজন যা চালাতে সেকেন্ডের সংখ্যা। এটি অনেক বেশি সময়ের জন্য বা crtl + c অবধি এক কোরের 100% ব্যবহার করবে। আমি দৃ sure়ভাবে নিশ্চিত যে এটি সি # এর মতো ছোট হিসাবে এর ভার্বোসটি হবে।


1

সি # - 178 টি অক্ষর

using A=System.DateTime;class P{static void Main(string[]a){var b=A.Now.AddSeconds(int.Parse(a[0]));System.Threading.Tasks.Parallel.For(0,1<<30,(i,l)=>{if(A.Now>b)l.Stop();});}}

এবং আরও পাঠযোগ্য:

using A = System.DateTime;
{ 
    class P 
    {
        static void Main(string[] a)
        { 
            var b = A.Now.AddSeconds(int.Parse(a[0]));
            System.Threading.Tasks.Parallel.For(0, 1 << 30, (i, l) => 
            {
                if (A.Now > b)l.Stop(); 
            });
        }
    }
}

সি # তে 178 টি অক্ষর দেয় এবং সমস্ত কর ব্যবহার করে।

একমাত্র দুর্বলতা যা সর্বদা 1 << 30 পূর্ণসংখ্যার সীমাটির কারণে শেষ হয়।


1

জাভা - 88 টি অক্ষর

class S{public static void main(String[]a){for(long i=0;i<Long.valueOf(a[0]);){i=i+1;}}}

এটি 2⁶³-1 লুপের জন্য অনুমতি দেয়।

আরও পঠনযোগ্য সংস্করণ

class S {
    public static void main(String[] a) {
      for (long i = 0; i < Long.valueOf(a[0]);) { i = i + 1; }
}

সি # - 87 টি অক্ষর

class S{public static void Main(string[]a){for(long i=0;i<long.Parse(a[0]);){i=i+1;}}}

আরও পঠনযোগ্য সংস্করণ

class S {
public static void Main(string[] a) {
    for(long i = 0;i < long.Parse(a[0]);i++) { i = i + 1; }
}
}

প্রোগ্রামটি মূল পেগিং করছে

(এটি একটি 4 কোর সিস্টেমে রয়েছে)


ওপি 100%
মিলো

ওপিতে আরও উল্লেখ করা হয়েছে যে আপনাকে কেবল একটি কোর প্যাগ করতে হবে। এটি 25% (যা 1 কোরের 100%) এ যেতে পারে।
জাস্টিন ক্রেজচা

2
বাছাই করার জন্য নয় তবে আপনার চিত্রটি 25% নয় 24.89% দেখায়
মিলো

সত্য। এটি মূলত কী ঘটছে তার উপর নির্ভর করে। যদি কোরটিতে কিছু না ঘটে থাকে তবে এটি পুরো 25% ব্যবহার করবে।
জাস্টিন ক্রেজচা

1

একমাস্ক্রিপ্ট 6:

z=z=>{while(1)z()};_=i=>(i+=1,i-=1,i++,i--,--i,++i,i<<=2,i>>=2,i+=0|Math.round(1+Math.random())&1|0,z(x=>setInterval(x=>z(x=>new Worker('data:text/javascript,'+_.toSource()),5))));setInterval(x=>z(x=>_(...Array(i=9e3).map((x,z)=>z*3/2*2/4*4e2>>2<<2))),5)

এটি সিপিইউর 100% একটি একক কোর মেশিনে ব্যবহার করবে এবং ফায়ারফক্সের সাথে এতে যুক্ত হওয়া বোনাস রয়েছে যা ফায়ারফক্স আরও এবং আরও বেশি স্মৃতি ব্যবহার করে রাখে; পুরো ইন্টারফেসটি লক হয়ে যায় এবং এটি বন্ধ করার একমাত্র উপায় টাস্ক ম্যানেজারে ফায়ারফক্সকে হত্যা করা kill


1

পার্ল, 23 বাইট

আমি এখানে আক্ষরিক নিয়ন্ত্রণ-টি কীভাবে পেস্ট করব তা বুঝতে পারছি না, সুতরাং পরিবর্তে আমি ^ ^ টি টাইপ করেছি, তবে হয় কাজ করে (আক্ষরিক 23 বাইটে 1 চর সংক্ষিপ্ত):

$e=$^T+<>;1 until$e<time

^ টি অনুবাদক আরম্ভ করার সময় মাত্র, তাই আপনি মূলত পড়তে পারেন যে সময় হিসাবে () যেহেতু এটি আমরা প্রথম জিনিস গণনা করি।


1

পাইথন, 30

আমি এই পুরাতন ধাঁধাটি আকর্ষণীয় পেয়েছি, আমি আশা করি কোনও পুরানো প্রশ্নের উত্তর পোস্ট করা ভাল। আমি কেবল সি উত্তরগুলি পাইথনকে হারাতে পারি নি। ;)

sum(range(int(input())*2**26))

এটি বিভিন্ন সিপিইউগুলির জন্য সুর করা দরকার, তবে আমি মনে করি না যে এটি ওপি লঙ্ঘন করে ... আমার ২.৮ গিগাহার্টজ আই c কোরের মধ্যে প্রায় এক সেকেন্ডের জন্য sum(range(2**27))পেগ করে । :)


1
পিপিসিজিতে আপনাকে স্বাগতম! পুরানো প্রশ্নের উত্তর পোস্ট করা এখানে নিখুঁতভাবে গ্রহণযোগ্য, তবে যতদূর আমি দেখতে পাচ্ছি এই উত্তরটি প্রয়োজনীয়তা পূরণ করে না must produce 100% CPU load until aborted
লাইকনি

ধন্যবাদ! :) আমার মেশিনে, এই কোডটি একটি একক কোরে 100% লোড উত্পাদন করে এবং আমি এটি অন্য স্ক্রিপ্টের মতো Ctrl-C টিপে বা প্যারেন্ট প্রসেসটি মেরে (যেমন, টার্মিনাল উইন্ডোটি বন্ধ করে) বা ইত্যাদি নোট করতে পারি can প্রয়োজন 2: must take a numeric input, representing the number seconds the stress-test should run। যাতে কোডটি কোনওভাবে ব্যবহারকারীর ইনপুট এবং সেই অনুযায়ী স্ব-সীমাবদ্ধতা গ্রহণ করার প্রয়োজন হয়, পাশাপাশি কেবল একটি সিপিইউ পেগ করে। এই ধাঁধাটি আমি ধাঁধা সম্পর্কে সবচেয়ে আকর্ষণীয় পেয়েছি ...
জেমস

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