पृष्ठभूमि: मैं कार्यक्षमता का एक शुद्ध डी भाषा कार्यान्वयन बनाने की कोशिश कर रहा हूं जो लगभग C's memchr के बराबर है लेकिन पॉइंटर्स के बजाय सरणी और सूचकांक का उपयोग करता है। कारण यह है कि std.string संकलन समय समारोह मूल्यांकन के साथ काम करेगा। आप में से अपरिचित डब्ल्यू/डी के लिए, कुछ प्रतिबंधों को पूरा होने पर संकलन समय पर कार्यों का मूल्यांकन किया जा सकता है। एक प्रतिबंध यह है कि वे पॉइंटर्स का उपयोग नहीं कर सकते हैं। दूसरा यह है कि वे सी कार्यों को कॉल नहीं कर सकते हैं या इनलाइन असेंबली भाषा का उपयोग नहीं कर सकते हैं। संकलन समय पर स्ट्रिंग लाइब्रेरी कार्य करने के बाद कुछ संकलन समय कोड जेन हैक के लिए उपयोगी है।memchr() हुड के नीचे कैसे काम करता है?
प्रश्न: मेमचर हुड के तहत काम करता है जितना तेज़ करता है? Win32 पर, कुछ भी जो मैं सरल लूप का उपयोग कर शुद्ध डी में बनाने में सक्षम हूं, कम से कम 2x धीमी है, यहां तक कि w/स्पष्ट ऑप्टिमाइज़ेशन तकनीकों जैसे कि सीमा जांच, लूप अनोलिंग आदि अक्षम करना आदि। किस प्रकार की गैर-स्पष्ट चाल उपलब्ध हैं एक स्ट्रिंग में एक चरित्र खोजने के रूप में सरल कुछ?
धन्यवाद, इसके अलावा एलजीपीएल कोड और डी की मानक लाइब्रेरी को अनुमोदित रूप से लाइसेंस प्राप्त किया जाना चाहिए। मैं नहीं चाहता कि यह एक मुद्दा हो। – dsimcha
ठीक है, मैं सुझाव दे रहा था कि आप स्रोत की प्रतिलिपि बनाने के बजाय तकनीक प्रेरणा के लिए इसे देखें। – Chris
यह कोड की लगभग 150 लाइनें हैं, जिनमें से आधा या अधिक टिप्पणियां हैं, इसलिए यह उचित मात्रा में अनुकूलन बताती है। – Chris