मैं वर्तमान में सी फ़ाइल के संचालन (शायद एक प्रकार का डीबीएमएस) पर बी + पेड़ बनाम सामान्य-संतुलित-पेड़ के लिए प्रदर्शन परीक्षण कर रहा हूं। सी बी + पेड़ बीबीटी से तेज होने की उम्मीद है क्योंकि यह कम डिस्क करता है आई/ओ संचालन। लेकिन मैंने पाया कि, कुछ परीक्षणों के बाद, सिस्टम डिस्क फ़ाइलों के लिए कैशिंग कर रहा है, फ़ाइल पूरी तरह से स्मृति में सहेजा गया था (मेरी मेमोरी आकार 32 जीबी है)! बी + पेड़ बीबीटी से तेज नहीं हो सकता है क्योंकि कोई डिस्क I/O नहीं किया जाएगा। तो मुझे आश्चर्य है कि सिस्टम कैशिंग को अक्षम करने का कोई तरीका है ताकि बी + पेड़ पेर्फ में जीत सके? मैं खुले साथ O_DIRECT फ़ाइल की कोशिश की है | O_SYNC:डिस्क फ़ाइलों के लिए सिस्टम (यूनिक्स) कैशिंग अक्षम करने का कोई तरीका है?
int fd = Open("sb.dat", O_DIRECT|O_SYNC|O_CREAT|O_RDWR, S_IRWXU|S_IRWXG|S_IRWXO);
लेकिन यह काम नहीं लगता है। 1359821
पेज दोष: 9
आप कैश के साथ तुलना क्यों करना चाहेंगे। वास्तविक जीवन में आप यही चाहते हैं। यदि आप देखना चाहते हैं कि यह अधिक कार्यों या अधिक मेमोरी लोड के साथ कैसे कार्य करता है, तो कुछ समांतर बेंचमार्क चलाएं, या एक "memmuncher" एप्लिकेशन लिखें जो आवंटित करता है और फिर उस मेमोरी तक पहुंचता है (लूप में - सुनिश्चित करें कि आपके पास अभी भी पर्याप्त CPU क्षमता है सिस्टम चलाने के लिए)। –
'O_SYNC' के बारे में क्या? – BAK
O_DIRECT | O_SYNC | O_CREAT | O_RDWR अभी भी काम नहीं करता है :( –