Εμφάνιση αναρτήσεων με ετικέτα GreyIndex. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα GreyIndex. Εμφάνιση όλων των αναρτήσεων

Δευτέρα 12 Ιανουαρίου 2015

Βελτιστιοποίηση (Python)

Πριν δυό βδομάδες δούλευα μαζί με ένα φίλο σχετικά με ένα log manager σε Python
και είχαμε το εξής πρόβλημα . Κάθε φορά που ένας χρήστης πατάει το refresh πρέπει να γίνεται ένα ajax get request το οποίο θα επιστρέφει τις αλλαγές που συνέβησαν στο αρχείο . 
Ο κώδικας ήταν ο εξής :


diffs = differ.compare(files_cache[file_name], log_file.read())
diff_l = [diff for diff in diffs if re.search(diff_regex, diff)]
file_diffs[file_name] = "".join(diff_l)

Ο οποίος έπαιρνε τις αλλαγές και τις σύγκρινε εάν ξεκινάνε με "+" ή " " :
Επειδή με το  difflib της python επιστρέφονται και οι γραμμές που δεν έχουν αλλάξει ο έλεγχος αυτός έπαιρνε γύρω στα 11 λεπτά .

Όμως κάποιος ο οποίος θα σκεφτόταν ότι ένα log αρχείο έχει ΜΟΝΟ additions γιατί λοιπόν να κάτσεις να το διαβάσεις όλο και να μην ξεκινήσεις από εκεί που σταμάτησες ;

file_diffs[file_name] = file_contents[len(files_cache[file_name]):]

Χρόνος εκτέλεσης : 0,0001 s