"-D" विकल्प का क्या प्रभाव पड़ता है?


24

diffOpenBSD पर कार्यान्वयन एक गैर मानक है -dनिम्नलिखित प्रलेखन के साथ विकल्प:

-d

संभव के रूप में छोटे रूप में एक अंतर का उत्पादन करने के लिए बहुत प्रयास करें। कई फ़ाइलों के साथ बड़ी फ़ाइलों को संसाधित करते समय यह बहुत अधिक प्रसंस्करण शक्ति और मेमोरी का उपभोग कर सकता है।

GNU diffकार्यान्वयन में छोटे दस्तावेज़ के साथ एक ही विकल्प है

-d, --minimal

परिवर्तनों का एक छोटा समूह खोजने के लिए कड़ी मेहनत करें

समय-समय पर मैंने इस विकल्प का उपयोग केवल यह देखने के लिए किया है कि क्या यह आउटपुट उत्पन्न करता है या diffविकल्प के बिना एक ही कमांड से भिन्न है , लेकिन मैंने कभी कोई अंतर नहीं देखा है (कोई सज़ा का इरादा नहीं)।

क्या कोई ऐसा उदाहरण प्रदान या इंगित कर सकता है जहां यह विकल्प वास्तव में बिना एक ही आदेश के एक अलग परिणाम उत्पन्न करता है -d? वैकल्पिक रूप से, यदि कोई व्यक्ति इस विकल्प के लिए आवश्यक परिस्थितियों को समझ सकता है।

एक अशिक्षित अनुमान यह है कि इसका बहुत बड़ी मात्रा के साथ संबंध है।


1
unix.stackexchange.com/questions/472528 आपकी जिज्ञासा शांत हुई ? (-:
JdeBP

@JdeBP हां वास्तव में। इसने मुझे इस ध्वज और इस तथ्य के बारे में याद दिलाया कि मुझे नहीं पता कि यह क्या करता है क्योंकि मैंने कभी ऐसा नहीं देखा है।
कुसलानंद an

1
info diff performanceइसे IIRC बताते हैं
स्टीफन चेज़लस

1
स्पष्ट रूप से संबंधित । मायर्स का दु: खद उदाहरण नहीं है -> न्यूनतम परिणाम।
आइजैक

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

जवाबों:


15

GNU में diff, FreeBSD पर भी उपयोग किया जाता है, --minimalध्वज पॉल एगर्ट द्वारा एक एल्गोरिथ्म भिन्नता को ट्रिगर करता है जो इसे " O(N**1.5 log N)अंतर के साथ बड़े आदानों के लिए उप-उत्पादन उत्पादन की कीमत पर लागत को सीमित करने का कारण बनता है "। अधिक विशेष रूप से, यह कई उत्तराधिकारियों को लागू नहीं करने का कारण बनता है जो केवल इष्टतम समाधानों के करीब खोजने और अतिरिक्त मतभेदों के रूप में "भ्रमित" लाइनों को बाहर फेंकने में सौदा करते हैं।

OpenBSD में diffहै, जो पुराने यूनिक्स का उपयोग करता है diff1970 के दशक से एल्गोरिथ्म, एल्गोरिथ्म कार्यरत हेरोल्ड स्टोन के लिए श्रेय दिया जाता है, और झंडा एक खोज है कि (प्रभावी रूप से संयुक्त राष्ट्र) एक अहस्ताक्षरित पूर्णांक के अधिकतम मान द्वारा बजाय का वर्गमूल से घिरा से चलाता है लाइनों की सीमा के आकार की तुलना की जा रही है (या अधिक होने पर 256)।--minimal

आगे की पढाई


1
जब मैंने UNIX स्रोतों से बेहतर अंतर पैदा किया, तो मैंने जाँच की कि OpenBSD वृद्धि और कोई बेहतर परिणाम नहीं मिल सका। ध्यान दें कि मूल पत्थर () फ़ंक्शन का उपयोग करता है: `} जबकि ((y = b [++ j])> 0);` और BTW: सामान्य फ़ाइल आकारों के लिए, मेरा बढ़ाया गया UNIX अंतर GNU भिन्न से अधिक तेज़ है।
स्किल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.