Performance Issues and Optimizations in JavaScript: An Empirical Study
As JavaScript is becoming increasingly popular, the performance of JavaScript programs is crucial to ensure the responsiveness and energy-efficiency of thousands of pro- grams. Yet, little is known about performance issues that developers face in practice and they address these issues. This paper pr...
Uloženo v:
| Vydáno v: | Proceedings / International Conference on Software Engineering s. 61 - 72 |
|---|---|
| Hlavní autoři: | , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
ACM
01.05.2016
|
| Témata: | |
| ISSN: | 1558-1225 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | As JavaScript is becoming increasingly popular, the performance of JavaScript programs is crucial to ensure the responsiveness and energy-efficiency of thousands of pro- grams. Yet, little is known about performance issues that developers face in practice and they address these issues. This paper presents an empirical study of 98 fixed performance issues from 16 popular client-side and server-side JavaScript projects. We identify eight root causes of issues and show that inefficient usage of APIs is the most prevalent root cause. Furthermore, we find that most is- sues are addressed by optimizations that modify only a few lines of code, without significantly affecting the complexity of the source code. By studying the performance impact of optimizations on several versions of the SpiderMonkey and V8 engines, we find that only 42.68% of all optimizations improve performance consistently across all versions of both engines. Finally, we observe that many optimizations are instances of patterns applicable across projects, as evidenced by 139 previously unknown optimization opportunities that we find based on the patterns identified during the study. The results of the study help application developers to avoid common mistakes, researchers to develop performance-related techniques that address relevant problems, and engine developers to address prevalent bottleneck patterns. |
|---|---|
| AbstractList | As JavaScript is becoming increasingly popular, the performance of JavaScript programs is crucial to ensure the responsiveness and energy-efficiency of thousands of pro- grams. Yet, little is known about performance issues that developers face in practice and they address these issues. This paper presents an empirical study of 98 fixed performance issues from 16 popular client-side and server-side JavaScript projects. We identify eight root causes of issues and show that inefficient usage of APIs is the most prevalent root cause. Furthermore, we find that most is- sues are addressed by optimizations that modify only a few lines of code, without significantly affecting the complexity of the source code. By studying the performance impact of optimizations on several versions of the SpiderMonkey and V8 engines, we find that only 42.68% of all optimizations improve performance consistently across all versions of both engines. Finally, we observe that many optimizations are instances of patterns applicable across projects, as evidenced by 139 previously unknown optimization opportunities that we find based on the patterns identified during the study. The results of the study help application developers to avoid common mistakes, researchers to develop performance-related techniques that address relevant problems, and engine developers to address prevalent bottleneck patterns. |
| Author | Pradel, Michael Selakovic, Marija |
| Author_xml | – sequence: 1 givenname: Marija surname: Selakovic fullname: Selakovic, Marija email: m.selakovic89@gmail.com organization: Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany – sequence: 2 givenname: Michael surname: Pradel fullname: Pradel, Michael email: michael@binaervarianz.de organization: Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany |
| BookMark | eNotj81KAzEURqMo2NauXbjJC0zNzc9M4q6UViuFCtV1uZNJINJJh2Qq1KfviK4O3-Z8nDG5icfoCHkANgOQ6olrLSsNs19qbq7I1AxTKiaEYQyuyQiU0gVwru7IOOcvxlgpjRmR1btL_phajNbRdc4nlynGhm67PrThB_twjJmGSN_wG3c2ha5_pvNIl20XUrB4oLv-1Jzvya3HQ3bTf07I52r5sXgtNtuX9WK-KXC47gtegwdVg7VOaywbC4pxI4AjVmVTGy-lESiYU8xXfkhgHFzlhWfeAygrJuTxzxucc_suhRbTeV9pXWrDxQX9cUyA |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IH CBEJK RIE RIO |
| DOI | 10.1145/2884781.2884829 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9781450339001 145033900X |
| EISSN | 1558-1225 |
| EndPage | 72 |
| ExternalDocumentID | 7886892 |
| Genre | orig-research |
| GroupedDBID | -~X .4S .DC 123 23M 29O 5VS 6IE 6IF 6IH 6IK 6IL 6IM 6IN 8US AAJGR AAWTH ABLEC ADZIZ AFFNX ALMA_UNASSIGNED_HOLDINGS APO ARCSS AVWKF BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO EDO FEDTE I-F I07 IEGSK IJVOP IPLJI M43 OCL RIE RIL RIO RNS XOL |
| ID | FETCH-LOGICAL-a225t-2b1f15b1cce88a6dc15029312aa76db9f4493a30e50f7f781021e7f3f0ff115c3 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 97 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000406138600008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 02:07:20 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a225t-2b1f15b1cce88a6dc15029312aa76db9f4493a30e50f7f781021e7f3f0ff115c3 |
| PageCount | 12 |
| ParticipantIDs | ieee_primary_7886892 |
| PublicationCentury | 2000 |
| PublicationDate | 2016-May |
| PublicationDateYYYYMMDD | 2016-05-01 |
| PublicationDate_xml | – month: 05 year: 2016 text: 2016-May |
| PublicationDecade | 2010 |
| PublicationTitle | Proceedings / International Conference on Software Engineering |
| PublicationTitleAbbrev | ICSE |
| PublicationYear | 2016 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| SSID | ssj0006499 |
| Score | 2.3218818 |
| Snippet | As JavaScript is becoming increasingly popular, the performance of JavaScript programs is crucial to ensure the responsiveness and energy-efficiency of... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 61 |
| SubjectTerms | Computer bugs Computer science Empirical study Engines JavaScript Libraries Optimization Performance issue Reliability Servers |
| Title | Performance Issues and Optimizations in JavaScript: An Empirical Study |
| URI | https://ieeexplore.ieee.org/document/7886892 |
| WOSCitedRecordID | wos000406138600008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1La8JAEB6s9NBTH1r6Zg89djXZJPvorRSllGKFPvAmu8kueDCKVaH_vrObqD300lNCICxMMjPfJt83H8CtN9RWkS2oYtbSFN8hahBY09QPoxLKMR7ImJ8vYjCQo5EaNuBuq4Wx1gbyme340_Avv5jlK_-prIvbNS4VFtw9IXil1dpWXY4r1KN74jTrMim9iLLjj9Ljx1_eKaF19A__t-gRtHcaPDLcdpdjaNjyBA43JgykzskW9Ic76j-pvPSILgvyirVguhFZkklJnvVav4UacU8eStKbzidhPAjxVMLvNnz0e--PT7Q2R6AaU3BJmYldnJk4z62Umhc5Ijts3THTWvDCKJemKtFJZLPICYehwGZuhUtc5ByiwDw5hWY5K-0ZEMkMT1KDmxlMziLRxmR4f2Qig9jGKXYOLR-W8byafzGuI3Lx9-VLOEBQwStS4BU0l4uVvYb9fL2cfC1uwkP7AUZlmAI |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NT8JAEJ0QNNETKhi_3YNHC-12u931ZgwEFZFENNzIbrubcKAQBBL_vbNtBQ9ePLVp0mwy7cy8bd-bB3DjDLWlb1JPUmM8hu-QpxFYe8wNo4qlpTwnY3704n5fjEZyUIHbjRbGGJOTz0zTneb_8tNZsnKfylq4XeNCYsHdiRijfqHW2tRdjmuUw3sCFrWoEE5G2XRH4RDkL_eUvHl0av9b9gAaWxUeGWz6yyFUTHYEtR8bBlJmZR06gy35nxRuekRlKXnFajD9kVmSSUae1Fq95VXijtxnpD2dT_IBIcSRCb8a8N5pDx-6XmmP4ClMwqVHdWCDSAdJYoRQPE0Q22HzDqhSMU-1tIzJUIW-iXwbWwwFtnMT29D61iIOTMJjqGazzJwAEVTzkGnczmB6pqHSOsL7fe1rRDdW0lOou7CM58UEjHEZkbO_L1_DXnf40hv3HvvP57CPEIMXFMELqC4XK3MJu8l6OflcXOUP8BteBJtJ |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+%2F+International+Conference+on+Software+Engineering&rft.atitle=Performance+Issues+and+Optimizations+in+JavaScript%3A+An+Empirical+Study&rft.au=Selakovic%2C+Marija&rft.au=Pradel%2C+Michael&rft.date=2016-05-01&rft.pub=ACM&rft.eissn=1558-1225&rft.spage=61&rft.epage=72&rft_id=info:doi/10.1145%2F2884781.2884829&rft.externalDocID=7886892 |