HEAL DSpace

Πειράματα και μετρήσεις στον συντακτικό αναλυτή της μηχανής V8

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Σκλήκας, Νικόλαος el
dc.contributor.author Sklikas, Nikolaos en
dc.date.accessioned 2018-08-24T08:33:52Z
dc.date.available 2018-08-24T08:33:52Z
dc.date.issued 2018-08-24
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/47449
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.15765
dc.rights Default License
dc.subject Γλώσσες προγραμματισμού el
dc.subject Συντακτική ανάλυση el
dc.subject Συντακτικά λάθη el
dc.subject Γλώσσα σεναρίων el
dc.subject Μηχανή V8 el
dc.subject JavaScript en
dc.subject Programming languages en
dc.subject Parsing en
dc.subject Syntax errors en
dc.subject Scripting language en
dc.subject V8 engine en
dc.title Πειράματα και μετρήσεις στον συντακτικό αναλυτή της μηχανής V8 el
heal.type bachelorThesis
heal.classification Μεταγλωττιστές el
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2018-07-06
heal.abstract Σκοπός της παρούσας εργασίας είναι η μέτρηση του χρόνου που καταναλώνει η μηχανή V8 για τον εντοπισμό συντακτικών λαθών και η αποφυγή των επαναλαμβανόμενων προσπαθειών εντοπισμού λαθών στα ίδια κομμάτια κώδικα ώστε να μειωθεί ο συνολικός χρόνος που χρειάζεται η ανάλυση. Τη σημερινή εποχή η γλώσσα JavaScript είναι μια από τις πιο ευρέως χρησιμοποιημένες γλώσσες προγραμματισμού. Μηχανές JavaScript χρησιμοποιούνται σε ένα μεγάλο εύρος εφαρμογών από περιηγητές ιστού μέχρι πλατφόρμες ανάπτυξης εφαρμογών. Ευτυχώς οι σύγχρονες μηχανές JavaScript είναι πολύ πιο γρήγορες από ότι στο παρελθόν και γίνονται πολλές προσπάθειες για να βελτιωθεί ακόμα περισσότερο η απόδοση τους. Σε αυτή την εργασία ασχοληθήκαμε με τον συντακτικό αναλυτή της μηχανής V8. Ο V8 είναι μία από τις ταχύτερες μοντέρνες μηχανές JavaScript και είναι ένας πάνω στο χρόνο μεταγλωττιστής. Συγκε- κριμένα ο συντακτικός αναλυτής του είναι ένας αναλυτής αναδρομικής καθόδου. Το πρόβλημα που προσπαθήσαμε να αντιμετωπίσουμε είναι ότι κάποια κομμάτια κώδικα περνάνε πολλές φορές από τον αναλυτή με συνέπεια να γίνεται πολλές φορές η προσπάθεια εντοπισμού συντακτικών λαθών.Η επανειλημμένη προσπάθεια εντοπισμού συντακτικών λαθών είναι πολύ συχνή όταν ο V8 χρησιμοποιείται από τον περιηγητή Google Chrome, το οποίο είναι η πιο συνήθης χρήση του, καθώς η ανανέωση ή η επαναλαμβανόμενη επίσκεψη κάποιας ιστοσελίδας προκαλεί την ανάλυση του ίδιου κώδικα. Η συχνότητας της επαναλαμβανόμενης επίσκεψης κάποιας ιστοσελίδας γίνεται εύκολα αντιληπτή αν σκεφτεί κανείς το πλήθος των ιστοσελίδων που επισκέπτεται σε σχέση με το χρόνο που περνά στο διαδίκτυο. Για να αποδείξουμε την πρακτικότητα και τα οφέλη της προσέγγισης μας αφού αφαιρέσαμε τον εντοπισμό λαθών από τον συντακτικό αναλυτή του V8, χτίσαμε τον Chrome χρησιμοποιώντας τον αλλαγμένο V8 και μετρήσαμε την επιτάχυνση που είχαμε όταν επισκεπτόμασταν τις πιο δημοφιλείς ιστοσελίδες, οι οποίες ξέραμε ότι δεν είχαν συντακτικά λάθη στη JavaScript. Τέλος κάνοντας μικρές αλλαγές στον κώδικα προσαρμόσαμε τον αναλυτή για να κάνει έλεγχο για συντακτικά λάθη μόνο την πρώτη φορά που συναντάει κάποιο κομμάτι κώδικα πετυχαίνοντας επιτάχυνση έως και 1,3% στο χρόνο φόρτωσης της σελίδας. el
heal.abstract The purpose of this diploma dissertation is to measure the time spent by the V8 engine to detect syntax errors and to avoid repetitive attempts to detect syntax errors in the same piece of code in order to reduce the total time of parsing. Today JavaScript is one of the most widespread used programming languages. JavaScript engines are used in a wide range of applications from web browsers to application development platforms. Fortunately, the JavaScript engines are much faster than in the past and many efforts are being made to further improve their performance. In this we dealt with the V8 engine’s parser. The V8 is one of the fastest modern JavaScript engines and it is a just-in-time compiler. Specifically the parser is a recursive descent parser. The problem that we tried to deal with is that some pieces of code are parsed many times and therefore are checked many times for syntax errors many times. Repeated syntax error detection is very common when V8 is used by the Google Chrome browser, which is its most common use, as refreshing or revisiting a webpage causes the re-parsing of the same code. The frequency of a recurring visit of some website is quite large, considering the number of websites someone visits in relation to time he spents on the internet. To prove the practicality and benefits of our approach, after we removed syntactic error detection from the V8 parser we built Chrome using the altered V8 and we measured the acceleration that we achieved when we visited the most popular websites of the internet, which were error free, using the tool WebPageReplay. Finally, making small changes to the code we adjusted the parser to check for syntax errors only the first time it encounters a piece of code achieving speedup of up to 1.3% on page load time. en
heal.advisorName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Γκούμας, Γεώργιος el
heal.committeeMemberName Παγουρτζής, Αριστείδης el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 52 σ.
heal.fullTextAvailability true


Αρχεία σε αυτό το τεκμήριο

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής