আর সিস্টেম.টাইম (এক্সপ্রেস) আউটপুটটিতে 'ব্যবহারকারী' এবং 'সিস্টেম' বার পরিমাপ কী?


90

আমি system.time(expression)কোনও আর ফাংশনের জন্য মৃত্যুর সময় পরিমাপ করতে ব্যবহার করছি ।

আউটপুট আমি কল জন্য পেতে

system.time(myfunction())

হ'ল:

    user  system elapsed   
  117.36    5.65  127.86

'ব্যবহারকারী' এবং 'সিস্টেম' কী পরিমাপ করে?



4
এই প্রশ্নটি আরও ভাল শিরোনাম ব্যবহার করতে পারে - যেমন "ব্যবহারকারী 'এবং' সিস্টেম 'সময়গুলি মাপার কী?"। এটি তালিকা ব্রাউজ করা লোকেদের জন্য প্রশ্নকে আরও পরিষ্কার করে তুলবে।
শার্পি

উত্তর:


48

এটি আলোচনা করা হয়েছে ?proc.time( system.time()শ্রেণীর একটি বস্তু ফেরত দেয় "proc.time"):

Details:

     ‘proc.time’ returns five elements for backwards compatibility, but
     its ‘print’ method prints a named vector of length 3.  The first
     two entries are the total user and system CPU times of the current
     R process and any child processes on which it has waited, and the
     third entry is the ‘real’ elapsed time since the process was
     started.

....এবং

Value:

....

     The definition of ‘user’ and ‘system’ times is from your OS.
     Typically it is something like

     _The ‘user time’ is the CPU time charged for the execution of user
     instructions of the calling process. The ‘system time’ is the CPU
     time charged for execution by the system on behalf of the calling
     process._

45

স্পষ্ট ব্যাখ্যা আমি কখনো মধ্যে পার্থক্য উপর পড়েছি userএবং systemঅতিবাহিত সময় সরবরাহ করেছিল [আর-সাহায্যের] এ উইলিয়াম মধ্যে Dunlap :

"ইউজার সিপিইউ সময়" বর্তমান প্রক্রিয়া (যেমন, বর্তমান আর সেশন) দ্বারা ব্যয় করা সিপিইউ সময় দেয় এবং "সিস্টেম সিপিইউ সময়" বর্তমান প্রক্রিয়ার পক্ষে কর্নেল (অপারেটিং সিস্টেম) দ্বারা ব্যয় করা সিপিইউ সময় দেয়। অপারেটিং সিস্টেমটি ফাইল খোলা, ইনপুট বা আউটপুট করা, অন্যান্য প্রক্রিয়াগুলি শুরু করা, এবং সিস্টেমের ঘড়ির দিকে নজর দেওয়া ইত্যাদির জন্য ব্যবহৃত হয়: অনেকগুলি প্রক্রিয়া ভাগ করে নিতে হবে এমন সংস্থানগুলির সাথে জড়িত এমন ক্রিয়াকলাপ operations

যদিও ?proc.timeকিছু অনুরূপ ফেরত দেয়, এই বর্ণনাটি আমার পক্ষে বোঝা অনেক সহজ ছিল।


22

এখানে কিছু সহজ ব্যাখ্যা দেওয়া হল:

অতিবাহিত সময় হল সিপিইউগুলিতে অভিব্যক্তির জন্য চার্জ করা সময়।

ব্যবহারকারীর সময় হল প্রাচীরের ঘড়ির সময়। আপনি হিসাবে ব্যবহারকারী হিসাবে অভিজ্ঞতা সময়।

সাধারণত উভয় সময় তুলনামূলকভাবে কাছাকাছি হয়। তবে এগুলি অন্য কয়েকটি পরিস্থিতিতে পরিবর্তিত হতে পারে। উদাহরণ স্বরূপ:

  • যদি সময় কেটে যায়> ব্যবহারকারীর সময় , এর অর্থ সিপিইউ কিছু অন্যান্য অপারেশন (বাহ্যিক হতে পারে) করার জন্য অপেক্ষা করছে।
  • যদি অতিবাহিত সময় <ব্যবহারকারীর সময় , এর অর্থ আপনার মেশিনে একাধিক কোর রয়েছে এবং সেগুলি ব্যবহার করতে সক্ষম

18

এগুলি যেহেতু জেনেরিক তাই উইকিপিডিয়া থেকে:

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

http://en.wikedia.org/wiki/Time_(Unix)#User_Time_vs_System_Time


2

যেহেতু সেই সময়ের চলকগুলি আপনার ওএস দ্বারা সংজ্ঞায়িত করা হয়েছে, আপনি man timeআপনার শেল (ইউনিক্সে) চালিয়ে কীভাবে সেগুলি গণনা করা হয় সে সম্পর্কে আপনি তথ্য পুনরুদ্ধার করতে পারেন :

... এই পরিসংখ্যানগুলির মধ্যে (i) প্রার্থনা এবং সমাপ্তির মধ্যে অতিবাহিত প্রকৃত সময়, (ii) ব্যবহারকারীর সিপিইউ সময় (2 (2)) দ্বারা প্রদত্ত হিসাবে একটি কাঠামো tms এর মান tms_utimeএবং tms_cutimeমানগুলির যোগফল , এবং (iii) নিয়ে গঠিত সিস্টেম সিপিইউ সময় ( স্ট্রাক্ট টিএমএসের সংখ্যার যোগফল tms_stimeএবং tms_cstime2 (2) হিসাবে ফেরত)।

উল্লিখিত সময়ের ভেরিয়েবলগুলির সংজ্ঞা এখানে পাওয়া যাবে :

tms_utime ব্যবহারকারী সিপিইউ সময়।

tms_stime সিস্টেম সিপিইউ সময়।

tms_cutime সমাপ্ত শিশু প্রক্রিয়াগুলির ব্যবহারকারীর সিপিইউ সময়।

tms_cstime সমাপ্ত শিশু প্রক্রিয়াগুলির সিস্টেম সিপিইউ সময়।

ব্যবহারকারী এবং সিস্টেম সময়ের মধ্যে পার্থক্যের একটি ব্যাখ্যা দারোকজিগের উত্তরে এবং অন্য কোথাও এসওতে বর্ণিত হয়েছে :

tms_utimeউপাদান আপনার কোড নির্বাহ সময় অতিবাহিত পরিমাণ, বা C লাইব্রেরিতে কোড। tms_stimeউপাদান সময় পরিমাণ কার্নেল আপনার পক্ষ থেকে কোড নির্বাহ অতিবাহিত হয়।

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