संकलन के लिए रैम ड्राइव - वहाँ ऐसी बात है?

वोट
49

एक जवाब (नीचे देखें) सवाल सही स्टैक ओवरफ़्लो को यहां से एक के लिए मुझे सॉफ्टवेयर का एक बड़ा छोटा सा टुकड़ा है कि हर जगह कोडर के लिए अमूल्य हो सकता है के लिए एक विचार दे दी है।

मैं राम ड्राइव सॉफ्टवेयर की कल्पना कर रहा हूँ, लेकिन एक महत्वपूर्ण अंतर के साथ - यह मेरे हार्ड ड्राइव पर एक वास्तविक फ़ोल्डर दर्पण होगा। अधिक विशेष रूप से - जो परियोजना मैं वर्तमान पर काम कर रहा हूँ वाले फ़ोल्डर। इस तरह किसी भी बनाता है लगभग तुरंत होगा होगा (या कम से कम परिमाण के एक जोड़े के आदेश तेजी से)। रैम ड्राइव केवल बेकार संसाधनों का उपयोग कर पृष्ठभूमि में हार्ड डिस्क ड्राइव के साथ इसकी सामग्री सिंक्रनाइज़ होगा।

एक त्वरित गूगल खोज कुछ भी नहीं पता चला, लेकिन शायद मैं सिर्फ पता नहीं है गूगल के लिए कैसे। शायद किसी को इस तरह के एक सॉफ्टवेयर के जानता है? अधिमानतः मुक्त है, लेकिन उचित फीस भी ठीक हो सकता है।

जोड़ा गया: कुछ समाधान सुझाव दिया गया है जो मैं बहुत शुरुआत में ही निकाल दिया। वे होगा (किसी विशेष क्रम में):

  • एक तेजी से हार्ड डिस्क ड्राइव (खरीदें एसएसडी शायद या 10K RPM)। मैं एक हार्डवेयर समाधान नहीं करना चाहती। इतना ही नहीं सॉफ्टवेयर संभावित सस्ता हो गया है, लेकिन यह भी वातावरण में इस्तेमाल किया जा सकता है, जहां हार्डवेयर संशोधनों असंभव नहीं तो अप्रिय होगा (फ्रीवेयर, किसी को?) - मान लें, कार्यालय में।
  • ओएस / HDD कैशिंग करते हैं - यह बेहतर कैसे अपने मुक्त रैम उपयोग करने के लिए जानता है। ओएस / HDD सामान्य कैश एल्गोरिदम है कि सब कुछ कैश और भविष्यवाणी करने के लिए जो डेटा सबसे भविष्य में आवश्यकता होगी कोशिश की है। वे कोई पता नहीं है कि मेरे लिए प्राथमिकता अपने प्रोजेक्ट फ़ोल्डर है। और हम सब बहुत अच्छी तरह से पता है - वे वास्तव में यह बहुत वैसे भी कैश नहीं है। ;)
  • चारों ओर रैम ड्राइव के बहुत सारे हैं, उन में से एक का उपयोग करें। क्षमा करें, कि लापरवाह होगा। मैं अपने डेटा वापस HDD से समकालित हो जब भी खाली समय का एक सा है की जरूरत है। बिजली चली मैं काम के पिछले पांच मिनट खोने सहन सकता है, लेकिन नहीं मेरा आखिरी चेकइन के बाद से सब कुछ के मामले में।

2 जोड़ा गया: एक विचार है कि आया था - एक सामान्य रैम ड्राइव के साथ साथ एक पृष्ठभूमि फ़ोल्डर सिन्क्रोनाइज़र का उपयोग करें (लेकिन मैं क्या मतलब है पृष्ठभूमि )। वहाँ किसी भी तरह के बात है?

3 जोड़ा गया: दिलचस्प। मैं सिर्फ काम पर एक सरल रैम ड्राइव बाहर की कोशिश की। पुनर्निर्माण समय ~ 14 सेकेंड ~ 7 को सेकेंड (बुरा नहीं) से चला जाता है, लेकिन वृद्धिशील निर्माण ~ 5 सेकेंड में अब भी है - बस HDD पर पसंद है। कोई भी विचार क्यों? यह का उपयोग करता है aspnet_compilerऔर aspnet_merge। शायद वे कहीं और अन्य अस्थायी फ़ाइलों के साथ कुछ करना?

4 जोड़ा गया: ओह, जवाब में से अच्छा नया सेट! :) ठीक है, मैं आप सभी वालों के लिए थोड़ा अधिक जानकारी मिल गया है। :)

इस विचार के लिए मुख्य कारणों में से एक यह उपर्युक्त सॉफ्टवेयर (14 सेकेंड समय का निर्माण), लेकिन एक और एक है कि मैं समय पर पहुँच नहीं था नहीं है। यह अन्य आवेदन एक 100 एमबी कोड आधार है, और इसकी पूर्ण निर्माण के बारे में 5 मिनट लगते हैं। आह हाँ, क्या है डेल्फी 5 , इसलिए संकलक भी उन्नत नहीं है। :) एक रैम ड्राइव पर स्रोत लाना एक बड़ा अंतर के परिणामस्वरूप। मैं एक मिनट के नीचे यह मिल गया, मुझे लगता है। मैं मापा नहीं किया है। मैं अलग करने के लिए भीख माँगती हूँ चाहते हैं - उन सभी जो कहते हैं कि ओएस बेहतर सामान कैश कर सकते कि के लिए तो।

संबंधित प्रश्न:

गति को आईडीई के लिए रैम डिस्क

पहले दिए गए लिंक पर ध्यान दें: सवाल जो करने के लिए यह लिंक क्योंकि यह डुप्लिकेट था हटा दिया गया है। यह पूछा:

यदि आप अपने कोड के संकलन क्या करते हैं?

और द्वारा जवाब दमित्री Nesteruk जो करने के लिए मैं जुड़ा हुआ था:

मैं लगभग तुरंत संकलन। आंशिक रूप से अपनी परियोजनाओं की वजह से छोटे किया जा रहा है, आंशिक रूप से रैम डिस्क के उपयोग के कारण।

09/12/2008 को 22:11
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


18 जवाब

वोट
17

लिनक्स में (तुम कभी नहीं उल्लेख किया जो ओएस पर आप हैं, तो यह हो सकता है प्रासंगिक हो) आप रैम से ब्लॉक उपकरणों बना सकते हैं और उन्हें किसी भी अन्य ब्लॉक डिवाइस की तरह माउंट कर सकते हैं (जो एक HDD है)।

तुम तो स्क्रिप्ट के लिए और स्टार्ट-अप / शटडाउन होने पर कि ड्राइव से कॉपी बना सकते हैं, साथ ही समय-समय पर।

उदाहरण के लिए, आप इसे सेट कर सकता है, ताकि आप के लिए किया था ~/codeऔर ~/code-real। आपका राम ब्लॉक पर रखा जाता है ~/codeस्टार्टअप पर, और फिर से सब कुछ ~/code-real(जो आपके मानक हार्ड ड्राइव पर है) पर कॉपी हो जाता है। शटडाउन होने पर सब कुछ कॉपी किया जा सकता है ( rsync 'घ तेजी से होगा) से वापस ~/codeकरने के लिए ~/code-real। तुम भी शायद, कि स्क्रिप्ट समय-समय पर चलाना चाहूंगा ताकि आप एक बिजली की विफलता, आदि की स्थिति में ज्यादा काम खोना नहीं किया

मैं अब और ऐसा नहीं करते हैं (मैं के लिए यह प्रयोग किया जाता ओपेरा , अब जब 9.5 बीटा धीमी थी की कोई जरूरत नहीं)।

यहाँ लिनक्स में रैम डिस्क बनाने का तरीका है।

09/12/2008 को 23:58
का स्रोत उपयोगकर्ता

वोट
15

कितने लोगों को पता चलता है कि ओएस इस विशेष मामले में आप कर सकते हैं की तुलना में अपने कैशिंग जरूरतों पता लगाना में बेहतर काम कर सकते हैं मैं पर हैरान हूँ। मैं संकलन के लिए ऐसा नहीं था, मैं इसी तरह की प्रक्रियाओं के लिए यह करने के लिए किया था और मैं स्क्रिप्ट को तुल्यकालन स्वचालित के साथ एक रैम डिस्क का उपयोग कर समाप्त हो गया।

इस मामले में, मुझे लगता है कि मैं एक आधुनिक स्रोत नियंत्रण प्रणाली के साथ जाना चाहते हैं। हर पर संकलन यह स्रोत कोड में जाँच करेगा (एक प्रायोगिक शाखा के साथ यदि आवश्यक) स्वचालित रूप से इतना है कि हर संकलन डेटा बंद सहेजा जा रहा में परिणाम होगा।

विकास शुरू करने के लिए, रैम डिस्क शुरू करने और मौजूदा बेस लाइन खींच। संपादन आदि करते हैं, संकलन, संपादित करें, संकलन, - और यह सब आपके संपादन के लिए सहेजा जा रहा है।

जब खुश में अंतिम जाँच करें, और तुम भी अपने नियमित रूप से हार्ड डिस्क ड्राइव को शामिल करने की जरूरत नहीं है।

लेकिन वहाँ पृष्ठभूमि synchronizers कि चीजें स्वचालित करेगा कर रहे हैं - मुद्दा यह है कि वे प्रोग्रामिंग के लिए या तो अनुकूलित नहीं किया जाएगा और कभी-कभी पूरा निर्देशिका और फ़ाइल स्कैन करने के लिए परिवर्तन को पकड़ने के लिए आवश्यकता हो सकती है है। एक स्रोत कोड नियंत्रण प्रणाली वास्तव में इस उद्देश्य के लिए बनाया गया है, इसलिए संभव है कम खर्च किया जाएगा, भले ही यह अपने निर्माण सेटअप में मौजूद है।

ध्यान रखें कि एक पृष्ठभूमि सिंक कार्य, बिजली कटौती के मामले में, अपरिभाषित है रखें। आप यह पता लगाने की क्या बचा लिया गया था और क्या हुआ अगर चीजें गलत हो गया सहेजा नहीं गया था होने अंत होगा। साथ एक बिंदु को बचाने परिभाषित (प्रत्येक संकलन में, या हाथ से मजबूर) आप एक बहुत अच्छा विचार है कि यह एक राज्य है जहां आप सोचा था कि आप इसे संकलन सकता है में कम से कम था होगा। एक का प्रयोग करें VCS और आप आसानी से पिछले कोड के साथ उसकी तुलना और क्या परिवर्तन आप पहले से ही लागू किया है देख सकते हैं।

27/03/2009 को 05:03
का स्रोत उपयोगकर्ता

वोट
4

देखें बढ़ाता है tmpfs साथ उभरने ( Gentoo Linux विकि)।

पहले Gentoo के तहत राम ड्राइव का उपयोग कर compiles को तेज करने का तरीका जानने के लिए लिखा कई युगों का विषय था। यह क्या किया गया है की एक ठोस उदाहरण प्रदान करता है। सार है कि सभी स्रोत और मध्यवर्ती फ़ाइल का निर्माण, संकलन के लिए एक रैम डिस्क पर रीडायरेक्ट कर दिया जबकि अंतिम binaries स्थापित के लिए हार्ड ड्राइव करने के लिए निर्देशित कर रहे हैं।

इसके अलावा, मैं हार्ड ड्राइव पर अपने स्रोत है, लेकिन बनाए रखने की खोज की सलाह देते हैं git pushएक क्लोन respository कि रैम डिस्क पर रहता है करने के लिए अपने नवीनतम स्रोत बदल जाता है। क्लोन संकलित करें। बनाया binaries कॉपी करने के लिए अपने पसंदीदा स्क्रिप्ट का उपयोग करें।

मुझे आशा है कि वह मदद करेंगे।

10/12/2008 को 01:28
का स्रोत उपयोगकर्ता

वोट
3

का प्रयोग करें https://wiki.archlinux.org/index.php/Ramdisk रैम डिस्क बनाने के लिए।

तब मैं करने के लिए और रैम डिस्क से निर्देशिका स्थानांतरित करने के लिए ये स्क्रिप्ट लिखा था। बैकअप एक में किया जाता है टार रैम डिस्क में जाने से पहले फ़ाइल। इस तरह से यह कर के लाभ यह है कि पथ ही रहता है, तो आपके सभी विन्यास फाइल को बदलने की जरूरत नहीं है। जब आप कर रहे हैं, का उपयोग uramdirवापस डिस्क के लिए लाने के लिए।

संपादित करें: सी कोड है कि किसी भी आदेश में यह पृष्ठभूमि में एक अंतराल पर दिया जाता है चलेंगे जोड़ा गया। मैं इसे भेज रहा हूँ tarके साथ --updateसंग्रह में कोई भी परिवर्तन करता है, तो अद्यतन करने के लिए।

मेरा मानना ​​है कि यह सामान्य प्रयोजन समाधान बहुत सरल कुछ के लिए एक अनूठा समाधान बन धड़कता है। चुम्मा

सुनिश्चित करें कि आप rdbackupd के लिए पथ परिवर्तन करना

ramdir

#!/bin/bash

# May need some error checking for bad input.

# Convert relative path to absolute
# /bin/pwd gets real path without symbolic link on my system and pwd
# keeps symbolic link. You may need to change it to suit your needs.
somedir=`cd $1; /bin/pwd`;
somedirparent=`dirname $somedir`

# Backup directory
/bin/tar cf $somedir.tar $somedir

# Copy, tried move like https://wiki.archlinux.org/index.php/Ramdisk
# suggests, but I got an error.
mkdir -p /mnt/ramdisk$somedir
/bin/cp -r  $somedir /mnt/ramdisk$somedirparent

# Remove  directory
/bin/rm -r $somedir

# Create symbolic link. It needs to be in parent of given folder.
/bin/ln -s /mnt/ramdisk$somedir $somedirparent

#Run updater
~/bin/rdbackupd "/bin/tar -uf $somedir.tar $somedir" &

uramdir

#!/bin/bash

#Convert relative path to absolute
#somepath would probably make more sense
# pwd and not /bin/pwd so we get a symbolic path.
somedir=`cd $1; pwd`;

# Remove symbolic link
rm $somedir

# Copy dir back
/bin/cp -r /mnt/ramdisk$somedir $somedir

# Remove from ramdisk
/bin/rm -r /mnt/ramdisk$somedir

# Stop
killall rdbackupd

rdbackupd.cpp

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <signal.h>
#include <sys/time.h>

struct itimerval it;
char* command;

void update_archive(int sig)
{
    system(command);
}

int main(int argc, char**argv)
{
    it.it_value.tv_sec     = 1;   // Start right now
    it.it_value.tv_usec    = 0;
    it.it_interval.tv_sec  = 60;  // Run every 60 seconds
    it.it_interval.tv_usec = 0;

    if (argc < 2)
    {
        printf("rdbackupd: Need command to run\n");
        return 1;
    }
    command = argv[1];

    signal(SIGALRM, update_archive);
    setitimer(ITIMER_REAL, &it, NULL); // Start

    while(true);

    return 0;
}
26/10/2011 को 00:00
का स्रोत उपयोगकर्ता

वोट
3

मैं तुम्हारे लिए क्या चाहिए, तो है, लेकिन मैं अब के संयोजन का उपयोग कर रहा हूँ नहीं है Ramdisk और DRAM रैमडिस्क । चूंकि यह विंडोज है, मैं कोर स्मृति के लिए एक कठिन 3 जीबी की सीमा है, जिसका अर्थ है मैं एक रैम डिस्क के लिए बहुत अधिक स्मृति का उपयोग नहीं कर सकते। 4 जीबी 9010 पर अतिरिक्त वास्तव में यह पत्थर। मैं अपने आईडीई दुकान ठोस राज्य रैम डिस्क पर सभी अपने अस्थायी सामान और भी जाने Maven भंडार। DRAM रैम डिस्क फ्लैश कार्ड के लिए एक बैटरी बैकअप है। यह एक विज्ञापन की तरह लगता है, लेकिन यह वास्तव में एक उत्कृष्ट सेटअप है।

DRAM डिस्क डबल sata-300 बंदरगाह हैं और 0.0 एमएस औसत सबसे परीक्षणों पर तलाश के साथ बाहर आता है, क्रिसमस मोजा के लिए कुछ)?

09/12/2008 को 22:41
का स्रोत उपयोगकर्ता

वोट
3

आपका ओएस स्मृति में चीजों को कैश के रूप में यह काम करता है। एक रैम डिस्क तेजी से लग सकता है लेकिन है कि क्योंकि आप "रैमडिस्क के प्रति" और कई बार "रैमडिस्क से प्रतिलिपि" में बाँटे नहीं कर रहे हैं। एक निश्चित आकार रैमडिस्क को समर्पित राम सिर्फ स्मृति कैशिंग के लिए उपलब्ध कम कर देता है। ओएस बेहतर जानता है क्या रैम में की जरूरत है।

09/12/2008 को 22:38
का स्रोत उपयोगकर्ता

वोट
2

हाँ, मैं एक ही समस्या मिले हैं। (- किसी भी फोल्डर, क्योंकि राम ड्राइव, उदाहरण के लिए, करने के लिए स्थापित किया जा सकता डेस्कटॉप वास्तव में) और निरर्थक Googling के बाद मैं सिर्फ एक Windows सेवा आलसी बैक अप किए रैम ड्राइव के लिए लिखा था।

http://bitbucket.org/xkip/transparentbackup पूर्ण स्कैन (डिफ़ॉल्ट 5 मिनट) के लिए अंतराल निर्दिष्ट कर सकते हैं। और स्कैनिंग के लिए एक अंतराल केवल अधिसूचित फ़ाइलें (डिफ़ॉल्ट 30 सेकंड)। स्कैन 'संग्रह' विशेषता का उपयोग बदली हुई फाइलों का पता लगाता है (ओएस रीसेट करता है कि संग्रह करने के उद्देश्य के लिए एक विशेष रूप से)। केवल फाइलों कि जिस तरह से बैकअप लिया जाता है संशोधित।

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

एक अन्य समाधान है कि मैं हाल ही में पता चला है है नई गति Supercache

इस कंपनी को भी एक रैम डिस्क है, लेकिन है कि एक और सॉफ्टवेयर है। Supercache आप ब्लॉक स्तर कैशिंग के लिए अतिरिक्त रैम (यह फ़ाइल कैशिंग से बहुत अलग है) का उपयोग की अनुमति देता है, और एक अन्य विकल्प - दर्पण आप ड्राइव पूरी तरह से राम को। किसी भी स्थिति में आप कितनी बार गंदा ब्लॉक हार्ड डिस्क ड्राइव करने के लिए वापस ड्रॉप करने, रैम डिस्क पर राईट बनाकर निर्दिष्ट कर सकते हैं, लेकिन दर्पण परिदृश्य भी बनाता रैम ड्राइव से की तरह पढ़ता है। आप एक छोटे विभाजन, उदाहरण के लिए, 2 जीबी (Windows का उपयोग कर) बना सकते हैं और राम के लिए पूरे विभाजन मैप करें।

कि समाधान के बारे में एक दिलचस्प और बहुत उपयोगी बात - आप कैशिंग और मिरर विकल्प किसी भी समय बस तुरन्त दो क्लिक के साथ बदल सकते हैं। उदाहरण के लिए, यदि आप अपने 2 जीबी gamimg या आभासी मशीन के लिए वापस चाहते हैं - तुम सिर्फ तुरन्त मिरर बंद करो और वापस रिलीज स्मृति सकते हैं। यहां तक ​​कि फ़ाइल हैंडल नहीं तोड़ता है खोला - विभाजन काम करने के लिए जारी है, लेकिन एक सामान्य ड्राइव के रूप में।

संपादित करें: मैं भी अत्यधिक आप, ते राम ड्राइव करने के लिए अस्थायी फ़ोल्डर ले क्योंकि compilers आमतौर पर अस्थायी साथ बहुत काम कर सलाह देते हैं। मेरे मामले में यह मुझे संकलन गति का एक और 30% दे दी है।

11/03/2012 को 07:31
का स्रोत उपयोगकर्ता

वोट
2

मैं एक ही विचार था और कुछ शोध किया। मैं निम्नलिखित उपकरण है कि आप के लिए क्या देख रहे कर पाया:

हालांकि, दूसरा एक मैं प्रबंधन नहीं कर सके बिल्कुल पर 64-बिट Windows 7 कार्य करने के लिए, और यह इस समय बनाए रखने के लिए प्रतीत नहीं होता।

अन्य हाथों पर VSuite रैम डिस्क बहुत अच्छी तरह से काम करता है। दुर्भाग्य से मैं की तुलना में किसी भी महत्वपूर्ण प्रदर्शन को बढ़ावा देने के लिए उपाय नहीं कर सकता है एसएसडी जगह में डिस्क।

09/11/2011 को 20:33
का स्रोत उपयोगकर्ता

वोट
2
  1. प्रोफ़ाइल। आप प्रत्येक विकल्प के अच्छे माप करना सुनिश्चित करें। तुम भी, चीजों को आप पहले से ही खारिज कर दिया गया है खरीद सकते हैं उन्हें मापने, और उन्हें लौटने के लिए, तो आप जानते हैं कि आप अच्छा डेटा से काम कर रहे हैं।

  2. राम का एक बहुत प्राप्त करें। 2 जीबी DIMMs बहुत सस्ता कर रहे हैं; 4 जीबी DIMMs अमेरिका $ 100 / ईए से कुछ ज्यादा है, लेकिन है कि अभी भी क्या कंप्यूटर भागों बस कुछ ही साल पहले लागत की तुलना में बहुत सारा पैसा नहीं है। यदि आप एक रैम डिस्क के साथ अंत या सिर्फ ओएस अपने काम करते दे या नहीं, इस में मदद मिलेगी। आप 32-बिट Windows चला रहे हैं, तो आप 64-बिट के लिए स्विच करने के लिए 3 जीबी या तो खत्म हो गया कुछ भी का उपयोग करने की आवश्यकता होगी।

  3. मेष लाइव बादल करने के लिए या किसी अन्य कंप्यूटर के लिए अपने स्थानीय राम ड्राइव से सिंक्रनाइज़ कर सकते हैं, तो आप एक अप-टू-डेट बैकअप दे रही है।

  4. सिर्फ संकलक आउटपुट ले जाएँ। वास्तविक भौतिक डिस्क पर अपने स्रोत कोड रखें, लेकिन प्रत्यक्ष .obj, .dll और .exe फ़ाइल रैम ड्राइव पर बनाया जाना।

  5. एक पर विचार करें DVCS असली ड्राइव से रैम ड्राइव पर एक नया भंडार करने के लिए क्लोन। वापस माता पिता को "धक्का" अपने परिवर्तनों को अक्सर, हर बार अपने सभी परीक्षण पास का कहना है।

10/12/2008 को 00:31
का स्रोत उपयोगकर्ता

वोट
2

हम एक के लिए इस साल पहले किया करते थे 4GL वृहद संकलक; यदि आप मैक्रो पुस्तकालय और समर्थन लाइब्रेरी और रैम डिस्क पर अपने कोड, एक आवेदन पत्र (एक 80286 पर) संकलन डाल 30 सेकंड के लिए 20 मिनट से जाना होगा।

09/12/2008 को 22:32
का स्रोत उपयोगकर्ता

वोट
1

बहुत RAMDrives चारों ओर, कर रहे हैं उन में से एक का उपयोग करें। क्षमा करें, कि लापरवाह होगा।

सिर्फ अगर तुम राम डिस्क, जो मूर्ख है में पूरी तरह से काम करते हैं ..

छद्म-ish खोल स्क्रिप्ट, ramMake:

# setup locations
$ramdrive = /Volumes/ramspace
$project = $HOME/code/someproject

# ..create ram drive..

# sync project directory to RAM drive
rsync -av $project $ramdrive

# build
cd $ramdrive
make

#optional, copy the built data to the project directory:
rsync $ramdrive/build $project/build

जिसके अनुसार, अपने संकलक संभवतः कोई अतिरिक्त स्क्रिप्ट के साथ ऐसा कर सकते हैं .. बस Xcode में उदाहरण के लिए, एक रैम डिस्क को अपने निर्माण उत्पादन स्थान बदलने के लिए, यह प्राथमिकताएं के अंतर्गत है, भवन, "प्लेस में बिल्ड उत्पाद:" और "जहाँ मध्यवर्ती बिल्ड फ़ाइलें में: "।

27/03/2009 को 06:31
का स्रोत उपयोगकर्ता

वोट
1

क्या एक भी कोर मशीन पर सुपर फायदेमंद हो सकता है समानांतर बना देते हैं। डिस्क मैं / हे निर्माण प्रक्रिया में एक बहुत बड़ी कारक है। सीपीयू कोर प्रति दो संकलक उदाहरणों को उत्पन्न करने के लिए वास्तव में प्रदर्शन को बढ़ा सकते हैं। मैं पर एक संकलक उदाहरण ब्लॉक / ओ अन्य एक आम तौर पर संकलन के सीपीयू गहन भाग में कूद कर सकते हैं।

आप और सुनिश्चित करें कि आप रैम इस समर्थन करने के लिए (एक आधुनिक कार्य केंद्र पर एक समस्या नहीं होना चाहिए) मिल गया है बनाने की जरूरत है, अन्यथा आप गमागमन पहुंच जाएंगे उस उद्देश्य को हरा दिया।

पर जीएनयू बनाने तुम सिर्फ उपयोग कर सकते हैं -j[n]जहां [n]एक साथ प्रक्रियाओं की संख्या अंडे देने के लिए है। सुनिश्चित करें कि आप यह हालांकि प्रयास करने से पहले अपनी निर्भरता वृक्ष का अधिकार है या उसके परिणाम अप्रत्याशित कर सकते हैं।

एक अन्य उपकरण वास्तव में उपयोगी है कि (समानांतर मेकअप फैशन में) है distcc । यह जीसीसी के साथ एक इलाज काम करता है (यदि आप एक ऐसी ही कमांड लाइन इंटरफेस के साथ जीसीसी या कुछ का उपयोग कर सकते हैं)। distcc वास्तव में रिमोट सर्वर पर संकलक और spawning कार्य होने का नाटक द्वारा संकलन कार्य हाथ में टूट जाता है। आप एक ही तरीके से इसे कहते हैं तुम जीसीसी फोन चाहते हैं, और आप मेकअप के -j का लाभ लेने के [n] विकल्प कई distcc प्रक्रियाओं कॉल करने के लिए।

मेरे पिछले नौकरियों में से एक में हम एक काफी गहन लिनक्स ऑपरेटिंग सिस्टम का निर्माण है कि थोड़ी देर के लिए लगभग हर रोज प्रदर्शन किया गया था था। निर्माण मशीनों के लिए समर्पित की एक जोड़ी में जोड़ा जा रहा है और नौकरियों संकलन को स्वीकार करने में कुछ वर्कस्टेशन पर distcc डाल हमें निर्माण के समय नीचे एक आधा से एक दिन के लिए 60 मिनट के तहत एक पूर्ण ओएस + यूज़रस्पेस निर्माण के लिए लाने की अनुमति दी।

वहाँ मौजूदा संकलित गति करने के लिए अन्य उपकरणों का एक बहुत कुछ है। आप रैम डिस्क बनाने की तुलना में अधिक जांच करने के लिए चाहते हो सकता है; कुछ जो लगता है कि यह बहुत कम लाभ होगा के बाद से ओएस रैम के साथ डिस्क कैशिंग कर रही है। ओएस डिजाइनरों सबसे वर्कलोड के लिए कैशिंग सही हो रही समय की एक बहुत खर्च करते हैं; वे (सामूहिक) कर रहे हैं आप अधिक चालाक, तो मैं कोशिश करते हैं और ऐसा करने के लिए उन से बेहतर नहीं करना चाहते हैं।

आप रैम डिस्क के लिए रैम ऊपर चबाना हैं, ओएस कैश डेटा और अपने कोड को चलाने के लिए कम काम कर रहे रैम है -> आप और अधिक अदला-बदली और अन्यथा से भी बदतर डिस्क प्रदर्शन के साथ खत्म हो जाएगा (ध्यान दें: यदि आप इस विकल्प को पूरी तरह से निकालने से पहले प्रोफ़ाइल चाहिए यह)।

27/03/2009 को 05:29
का स्रोत उपयोगकर्ता

वोट
1

मुझे आश्चर्य है अगर आप की तरह एक सॉफ्टवेयर RAID 1 कुछ बना सकता है जहाँ आप एक सदस्य के रूप में एक भौतिक डिस्क / विभाजन, और एक सदस्य के रूप में राम का एक हिस्सा है।

मैं फेरबदल का एक सा और कुछ वास्तव में अजीब विन्यास एक लिनक्स यह करने के लिए मिल सकता है के साथ शर्त लगा सकता। मुझे विश्वास है कि यह प्रयास हालांकि लायक होगा नहीं हूँ।

10/12/2008 को 01:06
का स्रोत उपयोगकर्ता

वोट
0

समस्या मेरे अंतिम समाधान vmtouch है: https://hoytech.com/vmtouch/ यह उपकरण में (राम) कैश और पृष्ठभूमि में vmtouch daemonizes वर्तमान फ़ोल्डर अवरोधित करता है।

sudo vmtouch -d -L ./

तेजी से पहुँच के लिए खोल rc में इस रखो:

alias cacheThis = 'sudo vmtouch -d -L ./'

मैं काफी कुछ समय के लिए एक तैयार स्क्रिप्ट के लिए खोज की है, क्योंकि मैं अपने खुद के रैमडिस्क-rsync-स्क्रिप्ट लिखने पर बहुत समय बर्बाद नहीं करना चाहता था। मुझे यकीन है कि मैं कुछ बढ़त मामलों, जो काफी अप्रिय हो सकता है अगर महत्वपूर्ण कोड शामिल किया गया था ने छोड़ दिया था हूँ। और मैं मतदान दृष्टिकोण पसंद है कभी नहीं।

Vmtouch सही समाधान की तरह लगता है। इसके अलावा यह स्मृति बर्बाद नहीं करता है एक निश्चित आकार रैमडिस्क की तरह करता है। मैं क्योंकि मेरे 1Gig स्रोत के 90% एक बेंचमार्क क्या किया नहीं, + फ़ोल्डर का निर्माण पहले से ही कैश कर रहे थे, लेकिन कम से कम यह तेजी से महसूस करता है;)

02/08/2017 को 10:08
का स्रोत उपयोगकर्ता

वोट
0

डिस्क मंदी को आप वहन मुख्य रूप से लिखते हैं, और भी संभवतः वायरस स्कैनर की वजह से है। यह बहुत OSes के बीच भी अलग-अलग हो सकते हैं।

विचार यह है कि लिखते हैं सबसे धीमी है, मैं एक का निर्माण जहां मध्यवर्ती (उदाहरण के लिए, सेटअप करने के लिए परीक्षा की जाएगी रहे हैं .oइस तरह के एक रैम ड्राइव के रूप में फ़ाइलें) और बाइनरी किसी दूसरे स्थान पर उत्पादन मिलता है।

फिर आप तेजी से मीडिया को यह bin / मध्यवर्ती फ़ोल्डर लिंक कर सकते हैं (एक का उपयोग कर सांकेतिक लिंक या NTFS जंक्शन बिंदु )।

27/09/2011 को 22:36
का स्रोत उपयोगकर्ता

वोट
0

मेरे सिर के ऊपर से कुछ विचार:

उपयोग Sysinternals ' प्रक्रिया मॉनिटर (नहीं प्रोसेस एक्सप्लोरर ) क्या निर्माण के दौरान पर चला जाता है की जाँच करने के लिए - यह आप देखते हैं दूँगी %temp%प्रयोग किया जाता है, उदाहरण के लिए (कि प्रतिक्रिया फ़ाइलों शायद FILE_ATTRIBUTE_TEMPORARY डिस्क लिखते हैं यदि संभव हो तो जो रोकने चाहिए साथ बनाया जाता है को ध्यान में रखना, हालांकि)। मैं अपने स्थानांतरित कर दिया है %TEMP%रैम डिस्क के लिए, और यह मेरे सामान्य रूप में नाबालिग speedups देता है।

रैम डिस्क स्वचालित रूप से लोड हो रहा है / डिस्क छवियों बचत का समर्थन करता है कि प्राप्त करें, ताकि आप यह करने के लिए बूट स्क्रिप्ट का उपयोग करने की जरूरत नहीं है। अनुक्रमिक पढ़ा / एक एकल डिस्क छवि के लिखने छोटे फ़ाइलों का एक बहुत सिंक कर रहा है की तुलना में तेजी है।

रैम डिस्क पर अपने अक्सर इस्तेमाल / बड़े हेडर फाइल रखें, और रैम ड्राइव प्रतियों का उपयोग करने के लिए अपने संकलक मानक रास्तों को ओवरराइड। यह संभावना नहीं दे देंगे कि पहली बार के बाद, बनाता है, हालांकि, के रूप में ओएस मानक हेडर कैश एक सुधार की ज्यादा।

- आपकी हार्डड्राइव पर अपनी स्रोत फ़ाइल रखें, और रैम डिस्क के लिए सिंक के आसपास नहीं अन्य तरीके से । की जाँच करें MirrorFolder फ़ोल्डरों के बीच वास्तविक समय तुल्यकालन करने के लिए - यह एक फिल्टर ड्राइवर के माध्यम से इस को प्राप्त होता है, इसलिए केवल सिंक्रनाइज़ करता है क्या आवश्यक है (और केवल उन परिवर्तनों करता है - एक 2 जीबी फाइल करने के लिए एक 4 KB लिखने केवल लक्ष्य फ़ोल्डर के लिए एक 4 KB लिखने का कारण होगा )। यह पता लगाने की कैसे अपने बनाने के लिए आईडीई रैम ड्राइव से निर्माण हालांकि स्रोत फ़ाइलें आपके हार्डडिस्क पर रहे हैं ... और ध्यान रखें कि आप एक की आवश्यकता होगी में रखना बड़ी बड़ी परियोजनाओं के लिए रैम ड्राइव।

27/03/2009 को 06:16
का स्रोत उपयोगकर्ता

वोट
0

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

मेरी सलाह, आप अपने ड्राइव की गति की तरह नहीं है, प्रयोजनों के संकलन के लिए विशुद्ध रूप से एक उच्च गति चालन खरीद है। अपनी ओर से कम श्रम और आप अपने संकलन संकट का हल हो सकता है।

के बाद से इस सवाल का मूल रूप से कहा गया था, कताई हार्ड डिस्क दुखी कछुओं बन गए हैं जब SSDs की तुलना में। वे एक SKU में मूल रूप से अनुरोधित रैम डिस्क के बहुत करीब है कि आप Newegg या अमेज़न से खरीद सकते हैं कर रहे हैं।

09/12/2008 को 22:16
का स्रोत उपयोगकर्ता

वोट
-1

जेम्स कुरान का कहना है बस के रूप में, तथ्य यह है कि ज्यादातर कार्यक्रमों के संदर्भ की इलाके के कानून का पालन, लगातार कोड और डेटा पृष्ठ संख्या समय के साथ ओएस डिस्क कैश द्वारा प्रबंधनीय आकार तक ही सीमित हो जाएगा।

जब ऑपरेटिंग सिस्टम (जीत 95, डॉस जीत 3.x,) इस तरह के बेवकूफ संचय जैसी सीमाओं के साथ बनाया गया था रैम डिस्क उपयोगी थे। रैम डिस्क लाभ शून्य के पास है और अगर आप राम का एक बहुत आवंटित यह स्मृति उपलब्ध चूस लेगा सिस्टम कैश प्रबंधक को, समग्र प्रणाली के प्रदर्शन को चोट पहुँचाने। अंगूठे का नियम है: अपने कर्नेल ऐसा करने के लिए करते हैं। इस 'स्मृति defragmentation "या" अनुकूलक "कार्यक्रमों के रूप में एक ही है: वे वास्तव में कैश से बाहर पृष्ठों के लिए मजबूर (ताकि आप अधिक रैम अंत में मिलता है), लेकिन प्रणाली के एक बहुत कुछ कर के कारण समय के साथ पेज-दोषयुक्त है जब आपके लोड कार्यक्रमों कोड / डेटा है कि बाहर पृष्ठांकित किया गया था के लिए पूछने के लिए शुरू करते हैं।

तो अधिक प्रदर्शन के लिए, एक तेजी से डिस्क आई / ओ हार्डवेयर सबसिस्टम, हो सकता है RAID, तेजी से सीपीयू, बेहतर चिपसेट (कोई माध्यम से!), और अधिक शारीरिक रैम, आदि मिल

27/03/2009 को 04:51
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more