मेरे पास 35GB CSV
फाइल है। मैं प्रत्येक पंक्ति को पढ़ना चाहता हूं, और यदि यह एक शर्त से मेल खाता है, तो एक नए CSV को लाइन लिखें।
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) {
try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) {
br.lines().parallel()
.filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world
.forEach(line -> {
writer.write(line + "\n");
});
}
}
यह लगभग लेता है। 7 मिनट। क्या उस प्रक्रिया को और भी तेज करना संभव है?
parallel
यह तेजी से हटाता है ? और चारों ओर लाइनों फेरबदल नहीं करता है?
BufferedWriter
का उपयोग करके अपने आप को बनाएं , जो आपको बफर आकार सेट करने देता है। शायद एक बड़ा (या छोटा) बफर आकार एक फर्क पड़ेगा। मैं होस्ट ऑपरेटिंग सिस्टम बफर साइज़ को बफर साइज़ से मिलाने की कोशिश करूँगा । BufferedWriter