में समझ के लिए प्रदर्शन का प्रदर्शन मुझे स्कैला में समझने की दक्षता के बारे में एक प्रश्न है।स्कैला
यह निम्नलिखित कोड जब पर्म लगभग 550 तत्वों
perm = some list
for{
perm <- perms.withFilter(_.size > 0)
wordList = somefunction(perm) //expensive operation, wordlist is a list of strings
sentenceList = somefunction1(perm) //very expensive operation, sentenceList is a list of list of strings
word <- wordList
sentence <- sentenceList
} yield { word::sentence}
जब मैं निम्नलिखित में निम्न कोड बदल की एक सूची है चलाने के लिए लगभग 45 सेकंड लेता है, यह एक ही पर्म सूची
साथ 3 सेकंड में भाग गयाperm = some list
for{
perm <- perms.withFilter(_.size > 0)
word <- somefunction(perm) //expensive operation
sentence <- somefunction1(perm) //very expensive operation
} yield { word::sentence}
क्या प्रदर्शन में अंतर स्कैला में आलसी मूल्यांकन के साथ कुछ करने के लिए है?
उत्तर के लिए धन्यवाद। में तुम्हारी बात समझ रहा हूँ। मेरे पास डी-शर्करा प्रक्रिया के बारे में एक फॉलो अप प्रश्न है। 'Perms.withFilter (_। आकार> 0) .flatMap {} 'और नहीं' perms.withFilter (_। Size> 0) .foreach {}' के रूप में लिखा गया पहला कथन क्यों है? – Piyush
'foreach' रिटर्न' यूनिट', तो आपका परिणाम खो जाएगा। – drexin
आह, मैं देखता हूं। तो {x <- x1, y <-y1, z <-z1} उपज (x ::: y ::: z) के लिए निम्नलिखित समझ के लिए 'x1.flatmap {x => y1' अनुवाद करें। flatmap {y => z1.map {z => x :: y :: z}}} '? – Piyush