किसी फ़ाइल पर दिए गए कार्य को करने में Windows को कितना समय लगता है, यह कैसे निर्धारित होता है?


10

मैं जानना चाहता था कि क्या कोई समीकरण है जो विंडोज यह निर्धारित करने के लिए उपयोग करता है कि किसी फ़ाइल पर कार्रवाई करने में कितना समय लगता है, हटाएं, कॉपी करें, मिटाने या स्थापित करने के लिए कहें।

यहाँ छवि विवरण दर्ज करें

उदाहरण के लिए, जब मैं किसी फ़ाइल को हटा रहा हूं, और विंडोज कहता है "समय शेष: 18 सेकंड" यह इस संख्या की गणना कैसे कर रहा है, और क्या उपयोग कर रहा है?


1
चूँकि यह संख्या अक्सर गलत होती है, इसलिए अनुमान हटाने, घटाने या घटाने के लिए # फ़ाइलों के आधार पर अनुमान लगाना, हटाने की गति और गति समयबद्ध होती है।
साइबरन जूल

1
@ रामध्वज और यह कैसे पता चलता है कि यह कितनी जल्दी है? क्या यह एसएसडी, एचडी पर चलने वाले अन्य सभी मशीनों के लिए एक ही स्थिर चर है? क्या होगा अगर मेरे पास 200 जीबी का रैम है? अगर मेरे पास 10 एमबी रैम है तो क्या होगा? यह कैसे गणना कर रहा है कि एक क्रिया "त्वरित" कैसे है?
युरुत्सुकी

2
@imreallyfamecore खैर, मूल विचार यह है कि यह मापता है कि यह कुछ सेकंड के लिए कितनी तेजी से चल रहा है, और यह मानता है कि शेष प्रक्रिया समान गति से जारी रहेगी। यदि समय के साथ औसत गति बदलती है, तो यह अनुमान को समायोजित करेगा (कुख्यात के लिए अग्रणी "विंडोज ने मुझे बताया कि इसे 10 मिनट में कॉपी किया जाएगा और यह पहले से ही 2 घंटे है!")। यह सिर्फ एक अनुमान है, हालांकि - ओएस या किसी भी एप्लिकेशन को यह जानने का कोई तरीका नहीं है कि यह वास्तव में कितना समय लगेगा। क्या होगा अगर एचडीडी दूषित है? या आप नेटवर्क पर स्थानांतरित कर रहे हैं? या विखंडन के बहुत सारे है?
लुआयन

6
मुझे पता है कि मुझे इसके लिए सजा मिलेगी, लेकिन मैं खुद की मदद नहीं कर सकता। यह आपका जवाब नहीं है। XKCD: अनुमान
KlaymenDK

10
कोड:timeLeft = random(1,100);
MadTux

जवाबों:


20

क्या आपने देखा है कि आमतौर पर यह आपको पहले सेकंड में कोई अनुमान नहीं देता है?

ऐसा इसलिए है क्योंकि पहले सेकंड में, इसे सिर्फ ऑपरेशन करना पड़ता है। फिर, एक (छोटे) के बाद, यह जानता है कि यह पहले से ही कितना कॉपी / डिलीट / आदि है , और कितना समय लगा । यह आपको ऑपरेशन की औसत गति प्रदान करता है।

फिर, शेष बाइट्स को गति से विभाजित करें, और ऑपरेशन पूरा करने में आपके पास समय होगा।

यह प्राथमिक विद्यालय का गणित है। यदि आप 360 किमी की यात्रा करना चाहते हैं, और पहले मिनट के अंत में आपने 1 किमी की यात्रा की, तो आपको अपने गंतव्य पर पहुंचने में कितना समय लगेगा?

खैर, गति 1 किमी / मिनट है। वह 60 किमी / घंटा है। 60 किमी / घंटा से विभाजित 360 किमी आपको 6 घंटे (या 360 किमी / 1 किमी / मिनट = 360 मिनट = 6 घंटे) प्रदान करता है। चूंकि आप पहले से ही एक मिनट के लिए यात्रा कर चुके हैं, तो बचा हुआ अनुमानित समय 5 घंटे और 59 मिनट है।

"प्रति" के साथ "यात्रा" और "बाइट" के साथ "किमी" को प्रतिस्थापित करें और यह आपका प्रश्न है।

अलग-अलग प्रणालियों के समय के आकलन के विभिन्न तरीके हैं। आप अंतिम मिनट ले सकते हैं, और अनुमान बेतहाशा भिन्न हो सकते हैं, या आप पूरा समय ले सकते हैं, और यदि गति वास्तव में स्थायी रूप से बदलती है, तो आपके अनुमान वास्तविकता से बहुत दूर हो सकते हैं। मैंने जो बताया वह सबसे सरल विधि है।


12
बस स्पष्ट करने के लिए: क्या आप यह बता रहे हैं कि यह विंडोज कैसे करता है? या क्या आप केवल कुछ सरल अंकगणित का चित्रण कर रहे हैं जिसके माध्यम से एक उत्तर प्राप्त किया जा सकता है?
श्रेडरडरॉय

10
और पिछले के लिए 1%लेता time so far * rand[0 - 10]प्रदर्शित करते समयfew seconds left
मार्क

1
यदि आप रुचि रखते हैं, तो यह प्रश्न बताता है कि विंडोज (और OSX) कैसे प्रगति बार में बचे समय को प्रारूपित
रिचर्ड

1
मैं यह नहीं कह रहा कि विंडोज कैसे करता है। यदि यह ठीक इसी तरह करता है, तो यह एक संयोग है। ऐसा लगता है कि यह है, लेकिन यह एक तरीका है जिसके माध्यम से एक उत्तर प्राप्त किया जा सकता है। इसने मुझे देखा कि पोस्टर यह जानना चाहता है कि यह कैसे किया जाता है, और विंडोज को एक उदाहरण के रूप में दिया गया था। शेष आकार के अनुसार एक-आकार-फिट-सभी निरंतर गुणा (जैसा उसने प्रस्तावित किया है) पूरी तरह से अस्वीकार्य है और मुझे लगता है कि यह पता चला है कि उनका कोई अनुमान नहीं था कि ये अनुमान कैसे लगाए गए थे।
वाल्मीकि अर्किसंददास

4
@ValmikyArquissandas: रेमंड चेन (माइक्रोसॉफ्ट पर विंडोज टीम का एक डेवलपर) अपने ब्लॉग पर एक पोस्टिंग में इस एल्गोरिदम की पुष्टि करता है और यह भी बताता है कि यह गलत क्यों हो सकता है। blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx
रिचर्ड

1

एक सरल क्रॉस-गुणन के साथ उत्तर देना मेरे विचार में भयावह रूप से कृपालु है, मुझे यकीन है कि वह पहले से ही जानता था कि, यह है कि हम लगातार अपने सिर में चीजों को भी निर्देशित करते हैं।

फ़ाइल-ऑपरेशन प्रगति सलाखों के साथ समस्या यह है कि यह केवल समान डेटा के लिए सही है, इसलिए यदि आप 100 फ़ाइलों की प्रतिलिपि बनाते हैं, जिसमें सभी समान आकार होते हैं और आपकी ड्राइव कुछ और नहीं कर रही है, तो अनुमानित प्रगति मौके पर होगी, लेकिन क्या होगा यदि पहले 99 फाइलें छोटी txt- फाइलें थीं और आखिरी बड़ी वीडियो फाइल है? प्रगति बंद हो जाएगा।

यह समस्या तब और बढ़ जाती है जब आप एक फ़ोल्डर में फ़ाइलों को संभाल नहीं रहे होते हैं, लेकिन कई उप फ़ोल्डर। मान लें कि आपके पास 5 सबफ़ोल्डर हैं और आप उन्हें हटाना चाहते हैं (आकार इस मामले में तब बहुत ज्यादा मायने नहीं रखता है), पहले 4 फ़ोल्डरों में केवल तब 10 फ़ाइलें कम होती हैं, इसलिए जब तक ऑपरेशन 5 वें फ़ोल्डर में आता है, तब तक यह सोचता है कि यह है 80% किया, और बूम 5 वीं फ़ोल्डर में 5000 फाइलें हैं और आपकी प्रगति 1% तक वापस आती है

WinXP ने पहले से ही फाइलों की संख्या की गणना करके इसे प्राप्त करने की कोशिश की, जिसका अर्थ था कि जब फ़ाइलों में फ़ोल्डर को अनुक्रमित नहीं किया गया था, तो फ़ाइलों की संख्या के आधार पर, XP ने वास्तव में पहले 20 सेकंड के लिए ऑपरेशन शुरू नहीं किया था (समय लग गया था) गिनती) जिसने सबको उग्र कर दिया।

इसलिए जब मुझे इस बारे में विशेष ज्ञान नहीं है कि विंडोज यह कैसे करता है (लेकिन फाइलों और बाइट्स की गिनती के अलावा और क्या है) मुझे आशा है कि मैं यह बता सकता हूं कि यह दोषपूर्ण क्यों है और यह कभी भी सही क्यों नहीं होगा।

सबसे अच्छा आप यह कर सकते हैं कि केवल फिल्मकाउंट या बायटेकाउंट पर भरोसा न करें, लेकिन दोनों में से एक औसत का निर्माण करें।

या यदि आप अतिरिक्त पागल हो जाना चाहते थे, तो ओएस आपके मशीन और फैक्टर पर अतीत में इन ऑपरेशनों को समीकरण में लाने में कितना समय लगा सकता है।

अंतिम विचार: यदि कोई ऐसे फाइल सिस्टम के बारे में सोचेगा जो ओएस को यह बताएगा कि हर फ़ोल्डर का आकार क्या है, तो पहले उसकी गणना किए बिना, आपको कम से कम एक सही प्रगति का अनुमान प्राप्त होगा जब पूरे फ़ोल्डर को हटाने और इसके कुछ हिस्सों को नहीं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.