Πριν δυό βδομάδες δούλευα μαζί με ένα φίλο σχετικά με ένα 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
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου