मैं एक साझा मेजबान पर एक गिट रेपो होस्ट कर रहा हूं। मेरे रेपो में इसमें बहुत बड़ी फाइलें हैं, और हर बार जब मैं रेपो पर "गिट जीसी" चलाने की कोशिश करता हूं, तो मेरी प्रक्रिया को साझा होस्टिंग प्रदाता द्वारा बहुत अधिक मेमोरी का उपयोग करने के लिए मार दिया जाता है। जीआईटी जीसी उपभोग कर सकते हैं कि स्मृति की मात्रा को सीमित करने का कोई तरीका है? मेरी आशा यह होगी कि यह गति के लिए स्मृति उपयोग का व्यापार कर सकती है और इसके काम को करने में थोड़ी देर लग सकती है।क्या "git gc" का उपयोग करने वाली स्मृति की मात्रा को सीमित करने का कोई तरीका है?
उत्तर
हाँ, git config
के लिए मदद पृष्ठ पर एक नजर है और, विशेष रूप से pack.depth
, pack.window
, pack.windowMemory
और pack.deltaCacheSize
pack.*
विकल्पों को देखने।
यह एक पूरी तरह से सटीक आकार के रूप में Git स्मृति में प्रत्येक वस्तु मैप करने के लिए तो एक बहुत बड़ी वस्तु खिड़की और डेल्टा कैश सेटिंग्स की परवाह किए बिना स्मृति के उपयोग का एक बहुत पैदा कर सकता है की जरूरत नहीं है।
आपके पास स्थानीय भाग पैकिंग बेहतर हो सकती है और "फ़ाइलों को मैन्युअल रूप से" फ़ाइलों को ट्रांसफर कर सकती है, .keep
फाइलें जोड़ती हैं ताकि रिमोट गिट पूरी तरह से सब कुछ ठीक करने की कोशिश न करे।
तुम सिर्फ उन pathnames धब्बे के लिए डेल्टा संपीड़न निष्क्रिय करने के लिए डेल्टा विशेषता बंद कर देते हैं इस्तेमाल कर सकते हैं:
foo/.git/info/attributes
में (या foo.git/info/attributes
अगर यह एक नंगे भंडार है) (gitattributes में डेल्टा प्रविष्टि देखें और gitignore देखना पैटर्न वाक्यविन्यास के लिए):
/large_file_dir/* -delta
*.psd -delta
/data/*.iso -delta
/some/big/file -delta
another/file/that/is/large -delta
यह भंडार के क्लोन को प्रभावित नहीं करेगा। अन्य भंडारों (यानी क्लोन) को प्रभावित करने के लिए, गुणों को info/attributes
फ़ाइल के बजाय (या इसके अतिरिक्त) .gitattributes
फ़ाइल में डाल दें।
पर अनुपयोगी है, यह अब तक का सबसे उपयोगी उत्तर है जहां बड़ी फाइलें चिंतित हैं। धन्यवाद। मेरे पास कुछ PSDs का रेपो है, और यह गिट जीसी करने के लिए स्मृति के गीगाबाइट्स लेता था, अब इसमें 100 एमबी रैम होता है। ठंडा। –
मैंने इस link से निर्देशों का उपयोग किया। Charles Baileys के समान विचार।
आदेशों की एक प्रति यहां है:
git config --global pack.windowMemory "100m"
git config --global pack.packSizeLimit "100m"
git config --global pack.threads "1"
इस साझा होस्टिंग खाते के साथ hostgator पर मेरे लिए काम किया।
धन्यवाद! यह मेरे लिए काम करता है, लेकिन मुझे लगता है कि दूसरी पंक्ति में एक टाइपो है - कोई साइजलिमिट विकल्प नहीं है; इसे पढ़ना चाहिए: गिट कॉन्फ़िगरेशन --global pack.packSizeLimit "100m" – Max
यह पूरी तरह से काम करता है। यदि यह पहले काम नहीं करता है, तो windowMemory और packSizeLimit पर निचली सीमा का प्रयास करें। मेरे मामले में, 25 मीटर मीठा स्थान था। – jsapara
मैंने विकल्प का नाम बदल दिया। मूल लिंक टूटा हुआ है, यह सुनिश्चित नहीं है कि इसे कहां इंगित करें। – phunehehe
Git repack की स्मृति उपयोग है: (pack.deltaCacheSize + pack.windowMemory) × pack.threads
। प्रासंगिक डिफ़ॉल्ट 256 एमआईबी, असीमित, एनप्रोक हैं।
डेल्टा कैश उपयोगी नहीं है: समय की सबसे एक स्लाइडिंग खिड़की पर कंप्यूटिंग डेल्टा खर्च किया जाता है, जिनमें से अधिकांश छोड़ दिए जाते हैं; बचे हुए लोगों को कैशिंग करना ताकि उन्हें एक बार फिर से उपयोग किया जा सके (जब लेखन) रनटाइम में सुधार नहीं करेगा। वह कैश भी धागे के बीच साझा नहीं किया जाता है।
डिफ़ॉल्ट रूप से विंडो मेमोरी pack.window
(gc.aggressiveWindow
) से सीमित है। इस तरह पैकिंग सीमित करना एक बुरा विचार है, क्योंकि कामकाजी सेट आकार और दक्षता व्यापक रूप से भिन्न हो जाएगी। खिड़की के आकार को सीमित करने के लिए दोनों उच्च मूल्यों को बढ़ाने और pack.windowMemory
पर भरोसा करना सबसे अच्छा है।
अंत में, थ्रेडिंग को कार्य सेट को विभाजित करने का नुकसान होता है। pack.threads
को कम करना और pack.windowMemory
बढ़ाना ताकि कुल रहता है, रन रन को बेहतर बनाना चाहिए।
मरम्मत में अन्य उपयोगी ट्यूनेबल (pack.depth
, pack.compression
, बिटमैप विकल्प) हैं, लेकिन वे स्मृति उपयोग को प्रभावित नहीं करते हैं।
पूर्ण सत्य प्रतीत नहीं होता है? क्या आपके पास कोई विचार है: http://stackoverflow.com/questions/42175296/git-gc-uses-a-lot-of-memory-even-i-limited-it – Alex
- 1. क्या आईफोन सिम्युलेटर में उपलब्ध स्मृति की मात्रा निर्धारित करने का कोई तरीका है?
- 2. क्या स्मृति को सीमित करने का कोई तरीका है, ghci हो सकता है?
- 3. Git अत्यधिक स्मृति का उपयोग जीसी, असमर्थ
- 4. क्या लिनक्स में मुफ्त वीडियो रैम की मात्रा निर्धारित करने का कोई तरीका है?
- 5. क्या ऐसा करने का कोई तरीका है?
- 6. क्या कोई ऑब्जेक्ट का स्मृति पता एनएसएसटींग के रूप में प्राप्त करने का कोई तरीका है?
- 7. क्या फॉर्म प्रतिक्रिया को अनदेखा करने का कोई तरीका है?
- 8. सीमित Node.js की स्मृति उपयोग
- 9. क्या यह स्मृति जारी करने का एक अच्छा तरीका है?
- 10. क्या पर्ल नियमित अभिव्यक्ति का मिलान करने की संख्या का मूल्यांकन करने का कोई तरीका है?
- 11. क्या डेल्फी अनुप्रयोगों को हेज़ेलकास्ट का उपयोग करने की अनुमति देने का कोई तरीका है?
- 12. क्या CGPoints की तुलना करने का कोई तरीका है?
- 13. क्या ट्विटर टाइमलाइन विजेट में ट्वीट्स को सीमित करने का कोई तरीका है?
- 14. क्या स्थानांतरित करने/ट्रंक करने का कोई साफ तरीका है?
- 15. क्या YQL को HTML वापस करने का कोई तरीका है?
- 16. क्या StorageFile.CopyAsync() को रद्द करने का कोई तरीका है?
- 17. किसी .net अनुप्रयोग की स्मृति उपयोग सीमित
- 18. क्या configManager.AppSettings को ओवरराइड करने का कोई तरीका है?
- 19. क्या जेड-इंडेक्स को अनदेखा करने वाली घटनाओं पर आग लगने का कोई तरीका है?
- 20. क्या रननेबल को पैरामीटर पास करने का कोई तरीका है?
- 21. क्या एसिंक विधि का परीक्षण करने का कोई तरीका है?
- 22. क्या TabControl.Items.CurrentChanging को रद्द करने का कोई तरीका है?
- 23. TypeForwardedToAttribute का उपयोग करने का सही तरीका क्या है?
- 24. क्या PHP का एफ़टीपी शुरू करने का कोई तरीका है?
- 25. क्या वाईएक्स बिल्ड को तेज करने का कोई तरीका है?
- 26. बड़े ISTreams को प्रबंधित करने का सही तरीका क्या है?
- 27. क्या एचएटीओएम माइक्रोफॉर्मेट को सत्यापित करने का कोई तरीका है?
- 28. क्या ओपनिड को लागू करने का कोई आसान तरीका है?
- 29. क्या स्मृति के बाहर होने पर पर्ल व्यवहार करने का कोई मानक तरीका है?
- 30. क्या SQLLataReader को मल्टीथ्रेड करने का कोई तरीका है?
अंतिम संबंधित: http://stackoverflow.com/a/10293304/274502 – cregox
हां, ड्रीमहोस्ट पर एक समान समस्या थी (जिसे इस प्रश्न के साथ लेबल किया गया है)। 'गिट' की हत्या के दौरान इतने सारे मामले नहीं थे, लेकिन' डार्क्स '(एक और वीसीएस) हमेशा मारे गए, इसलिए यह http://Dreamhost.com –