चूंकि रैम the new disk लगता है, और चूंकि उस कथन का भी अर्थ है कि स्मृति तक पहुंच अब धीमी मानी जाती है कि डिस्क एक्सेस हमेशा कैसे होती है, मैं उच्च प्रदर्शन अनुप्रयोगों के लिए स्मृति में संदर्भ की स्थानीयता को अधिकतम करना चाहता हूं। उदाहरण के लिए, एक क्रमबद्ध इंडेक्स में, मैं आसन्न मानों को बंद करना चाहता हूं (कहने के विपरीत, हैशटेबल में), और मैं चाहता हूं कि इंडेक्स भी बंद हो रहा है।प्रबंधित कोड में, मैं संदर्भ के अच्छे इलाके को कैसे प्राप्त करूं?
सी में, मैं एक विशेष मेमोरी मैनेजर के साथ डेटा संरचना को चाबुक कर सकता हूं, जैसे कि (बेहद जटिल) डेवलपर्स Judy array ने किया था। पॉइंटर्स पर प्रत्यक्ष नियंत्रण के साथ, वे पॉइंटर मूल्य में अतिरिक्त जानकारी को एन्कोड करने के लिए अब तक गए थे। पाइथन, जावा या सी # में काम करते समय, मैं इस प्रकार के समाधान से जानबूझकर एक (या अधिक) स्तर का अबास्ट्रक्शन हूं और मैं जेआईटी कंपाइलर्स को सौंप रहा हूं और मेरे लिए निम्न स्तर पर चालाक चाल करने के साथ रनटाइम को अनुकूलित कर रहा हूं। ।
फिर भी, मुझे लगता है कि, यहां तक कि अमूर्त के इस उच्च स्तर पर, वहाँ चीजें हैं जो शब्दार्थ "करीब" माना जा सकता है और इसलिए निम्न स्तर पर वास्तव में करीब होने की संभावना है कर रहे हैं। उदाहरण के लिए, मैं निम्नलिखित के बारे में सोच रहा था (मेरे अनुमान कोष्ठक में):
- क्या मैं एक सरणी को स्मृति के आसन्न ब्लॉक (हां) होने की उम्मीद कर सकता हूं?
- एक ही उदाहरण में दो पूर्णांक एक ही कक्षा (संभवतः) के विभिन्न उदाहरणों में दो से करीब हैं?
- क्या कोई ऑब्जेक्ट स्मृति (नहीं) में एक संगत क्षेत्र पर कब्जा करता है?
- केवल दो
int
फ़ील्ड और दोint[]
फ़ील्ड वाले ऑब्जेक्ट्स की एक सरणी के बीच क्या अंतर है? (यह उदाहरण शायद जावा विशिष्ट है)
मैंने जावा संदर्भ में इनके बारे में सोचना शुरू कर दिया, लेकिन मेरी सोच अधिक सामान्य हो गई है, इसलिए मैं जावा प्रश्न के रूप में इसका इलाज नहीं करने का सुझाव दूंगा।
इसके अलावा, कैश नया सीडी-रोम है ... और अब आप अपने प्रदर्शन के लिए आंतरिक कार्यान्वयन विवरण पर भरोसा कर रहे हैं। .NET के लिए एक सर्विस पैक जो दृश्यों के पीछे चीजें कैसे काम करता है और आपका पूरा ढेर गिरता है ... – wefwfwefwe
@wefwfwefwe: और आपका बिंदु है - वास्तव में क्या? यहां तक कि यदि किसी भी मानक द्वारा हनो के प्रश्नों के उत्तर की गारंटी नहीं है, तो आपको अनुकूलन की आवश्यकता होने पर अनुकूलित करने के लिए _something_ का उपयोग करना होगा। – hjhill
बिंदु यह है कि आप .NET/जावा डेवलपर्स से बाहर निकलने की कोशिश कर अपने आप को ऐसा करने की कोशिश कर रहे हैं जो उन्हें आपके लिए किया गया था। – wefwfwefwe