Faster or Slower? Performance Mystery of Python Idioms Unveiled with Empirical Evidence.

Saved in:
Bibliographic Details
Title: Faster or Slower? Performance Mystery of Python Idioms Unveiled with Empirical Evidence.
Authors: Zhang, Zejun1 zejun.zhang@anu.edu.au, Xing, Zhenchang2 zhenchang.xing@anu.edu.au, Xia, Xin3 xin.xia@acm.org, Xu, Xiwei4 xiwei.xu@data61.csiro.au, Zhu, Liming4 liming.zhu@data61.csiro.au, Lu, Qinghua4 qinghua.lu@data61.csiro.au
Source: ICSE: International Conference on Software Engineering. 2023, p1495-1507. 13p.
Subjects: Python programming language, Idioms, Stack Overflow (Company), Data analysis, Descriptive statistics
Abstract: The usage of Python idioms is popular among Python developers in a formative study of 101 Python idiom performance related questions on Stack Overflow, we find that developers often get confused about the performance impact of Python idioms and use anecdotal toy code or rely on personal project experience which is often contradictory in performance outcomes. There has been no large-scale, systematic empirical evidence to reconcile these performance debates. In the paper, we create a large synthetic dataset with 24,126 pairs of non-idiomatic and functionally-equivalent idiomatic code for the nine unique Python idioms identified in [1], and reuse a large real-project dataset of 54,879 such code pairs provided in [1]. We develop a reliable performance measurement method to compare the speedup or slowdown by idiomatic code against non-idiomatic counterpart, and analyze the performance discrepancies between the synthetic and real-project code, the relationships between code features and performance changes, and the root causes of performance changes at the bytecode level. We summarize our findings as some actionable suggestions for using Python idioms. [ABSTRACT FROM AUTHOR]
Copyright of ICSE: International Conference on Software Engineering is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
Full text is not displayed to guests.
FullText Links:
  – Type: pdflink
Text:
  Availability: 1
Header DbId: egs
DbLabel: Engineering Source
An: 185196100
AccessLevel: 6
PubType: Conference
PubTypeId: conference
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Faster or Slower? Performance Mystery of Python Idioms Unveiled with Empirical Evidence.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Zhang%2C+Zejun%22">Zhang, Zejun</searchLink><relatesTo>1</relatesTo><i> zejun.zhang@anu.edu.au</i><br /><searchLink fieldCode="AR" term="%22Xing%2C+Zhenchang%22">Xing, Zhenchang</searchLink><relatesTo>2</relatesTo><i> zhenchang.xing@anu.edu.au</i><br /><searchLink fieldCode="AR" term="%22Xia%2C+Xin%22">Xia, Xin</searchLink><relatesTo>3</relatesTo><i> xin.xia@acm.org</i><br /><searchLink fieldCode="AR" term="%22Xu%2C+Xiwei%22">Xu, Xiwei</searchLink><relatesTo>4</relatesTo><i> xiwei.xu@data61.csiro.au</i><br /><searchLink fieldCode="AR" term="%22Zhu%2C+Liming%22">Zhu, Liming</searchLink><relatesTo>4</relatesTo><i> liming.zhu@data61.csiro.au</i><br /><searchLink fieldCode="AR" term="%22Lu%2C+Qinghua%22">Lu, Qinghua</searchLink><relatesTo>4</relatesTo><i> qinghua.lu@data61.csiro.au</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22ICSE%3A+International+Conference+on+Software+Engineering%22">ICSE: International Conference on Software Engineering</searchLink>. 2023, p1495-1507. 13p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Python+programming+language%22">Python programming language</searchLink><br /><searchLink fieldCode="DE" term="%22Idioms%22">Idioms</searchLink><br /><searchLink fieldCode="DE" term="%22Stack+Overflow+%28Company%29%22">Stack Overflow (Company)</searchLink><br /><searchLink fieldCode="DE" term="%22Data+analysis%22">Data analysis</searchLink><br /><searchLink fieldCode="DE" term="%22Descriptive+statistics%22">Descriptive statistics</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: The usage of Python idioms is popular among Python developers in a formative study of 101 Python idiom performance related questions on Stack Overflow, we find that developers often get confused about the performance impact of Python idioms and use anecdotal toy code or rely on personal project experience which is often contradictory in performance outcomes. There has been no large-scale, systematic empirical evidence to reconcile these performance debates. In the paper, we create a large synthetic dataset with 24,126 pairs of non-idiomatic and functionally-equivalent idiomatic code for the nine unique Python idioms identified in [1], and reuse a large real-project dataset of 54,879 such code pairs provided in [1]. We develop a reliable performance measurement method to compare the speedup or slowdown by idiomatic code against non-idiomatic counterpart, and analyze the performance discrepancies between the synthetic and real-project code, the relationships between code features and performance changes, and the root causes of performance changes at the bytecode level. We summarize our findings as some actionable suggestions for using Python idioms. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of ICSE: International Conference on Software Engineering is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=185196100
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1109/ICSE48619.2023.00130
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 13
        StartPage: 1495
    Subjects:
      – SubjectFull: Python programming language
        Type: general
      – SubjectFull: Idioms
        Type: general
      – SubjectFull: Stack Overflow (Company)
        Type: general
      – SubjectFull: Data analysis
        Type: general
      – SubjectFull: Descriptive statistics
        Type: general
    Titles:
      – TitleFull: Faster or Slower? Performance Mystery of Python Idioms Unveiled with Empirical Evidence.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Zhang, Zejun
      – PersonEntity:
          Name:
            NameFull: Xing, Zhenchang
      – PersonEntity:
          Name:
            NameFull: Xia, Xin
      – PersonEntity:
          Name:
            NameFull: Xu, Xiwei
      – PersonEntity:
          Name:
            NameFull: Zhu, Liming
      – PersonEntity:
          Name:
            NameFull: Lu, Qinghua
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 05
              Text: 2023
              Type: published
              Y: 2023
          Titles:
            – TitleFull: ICSE: International Conference on Software Engineering
              Type: main
ResultId 1