मैं सोच रहा था कि अगर कोई वहां जानता था कि PHP में यह कैसे किया जा सकता है। मैं एक ऐसी स्क्रिप्ट चला रहा हूं जिसमें फ़ाइल खोलना, पहली 1000 लाइनें लेना, उन पंक्तियों के साथ कुछ सामान करना, फिर php फ़ाइल अगली हज़ार लाइनों को लेने के लिए स्वयं का एक और उदाहरण खोलती है और जब तक यह फ़ाइल के अंत तक नहीं पहुंच जाती । मैं splfileobject का उपयोग कर रहा हूं ताकि मैं एक निश्चित रेखा की तलाश कर सकूं, जो मुझे इसे 1000 लाइन भागों में तोड़ने की अनुमति देता है। मेरे पास सबसे बड़ी समस्या प्रदर्शन के साथ है। मैं उन फाइलों से निपट रहा हूं जिनमें 10,000,000 लाइनें हैं और जब यह पहली 10,000 लाइनें या इतनी तेज़ है, तो उस बिंदु के बाद एक विशाल घातीय मंदी है जो मुझे लगता है कि उस बिंदु की तलाश में है।फ़ाइल से पहले एक्स लाइनों को हटाएं PHP
मैं जो करना चाहता हूं वह पहले हज़ार लाइनों को पढ़ना है, फिर उन्हें फ़ाइल से हटा दें ताकि मेरी स्क्रिप्ट हमेशा पहली हज़ार लाइनों को पढ़ सके। बाकी फाइल को स्मृति में पढ़ने के बिना ऐसा करने का कोई तरीका है। मैंने देखा है कि अन्य समाधानों में प्रत्येक पंक्ति को एक सरणी में पढ़ने और फिर पहली एक्स प्रविष्टियों से छुटकारा पाने में शामिल है, लेकिन दस मिलियन लाइनों के साथ जो बहुत अधिक स्मृति और समय खाएंगे।
यदि किसी के पास कोई समाधान या अन्य सुझाव हैं जो प्रदर्शन को तेज करेगा, तो इसकी सराहना की जाएगी।
आप * सोचते हैं * समय निकाला जा रहा है? – salathe
मैंने लाइन काउंटर को फिर से शुरू करने वाली रेखा पर टिप्पणी की ताकि यह हमेशा पहले 1000 भाग गया और यह तेजी से तेजी से चला।इसके अलावा यह तेजी से धीमा हो जाता है क्योंकि यह साथ जाता है, केवल एक चीज जो बदलती है वह वह रेखा है जो इसकी तलाश में होती है। –
खोजना * तेजी से * अधिक समय नहीं लेना चाहिए। मंदी किस तरह के पैमाने पर है? – salathe