Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2095050.2095072acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Are Java programmers transitioning to multicore?: a large scale study of java FLOSS

Published: 23 October 2011 Publication History

Abstract

We would like to know if Java developers are retrofitting applications to become concurrent and, to get better performance on multicore machines. Also, we would like to know what concurrent programming constructs they currently use. Evidence of how programmers write concurrent programs can help other programmers to be more efficient when using the available constructs. Moreover, this evidence can assist researchers in devising new mechanisms and improving existing ones. For this purpose, we have conducted a study targeting a large-scale Java open source repository, SourceForge. We have analyzed a number of FLOSS projects along two dimensions: spatial and temporal. For the spatial dimension, we studied the latest versions of more than 2000 projects. Our goal is to understand which constructs developers of concurrent systems employ and how frequently they use them. For the temporal dimension we took a closer look at various versions of six projects and analyzed how the use of concurrency constructs has evolved over time. In addition, we tried to establish if uses of concurrency control constructs were aimed at leveraging multicore processors. We have downloaded more than two thousand Java projects including their various versions, in addition to individual analysing about six well known open-source projects.

References

[1]
Joe Armstrong. Erlang. Commun. ACM, 53(9):68--75, 2010.
[2]
Danny Dig, John Marrero, Michael D. Ernst. How do Programs Become More concurrent? A Story of Program Transformations. In International Workshop on Multicore Software Engineering, Hawaii, USA, 2011.
[3]
Sushil Bajracharya, Joel Ossher, and Cristina Lopes. Sourcerer: An internet-scale software repository. In Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation, pages 1--4, 2009.
[4]
A. Bernstein and A. Bachmann. When process data quality affects the number of bugs: correlations in software engineering datasets. In MSR'2010, Cape Town, South Africa, May 2010.
[5]
David R. Butenhof. Programming with POSIX Threads. Addison-Wesley, 1997.
[6]
Danny Dig, John Marrero, and Michael D. Ernst. Refactoring sequential java code for concurrency via concurrent libraries. In Proceedings of the 31st International Conference on Software Engineering, pages 397--407, Vancouver, Canada, 2009.
[7]
Marc Eaddy, Thomas Zimmermann, Kaitlin D. Sherwood, Vibhav Garg, Gail C. Murphy, Nachiappan Nagappan, and Alfred V. Aho. Do crosscutting concerns cause defects? IEEE Trans. Softw. Eng., 34:497--515, July 2008.
[8]
Pedro Fonseca, Cheng Li, Vishal Singhal, and Rodrigo Rodrigues. A study of the internal and external effects of concurrency bugs. In Proceedings of DSN'2010, Hong Kong, China, June 2010.
[9]
Mark Grechanik, Collin McMillan, Luca DeFerrari, Marco Comi, Stefano Crespi, Denys Poshyvanyk, Chen Fu, Qing Xie, and Carlo Ghezzi. An empirical investigation into a large-scale java open source code repository. In Proceedings of the 4th International Symposium on Empirical Software Engineering and Measurement, Bolzano-Bozen, Italy, September 2010.
[10]
Maurice Herlihy. Linearizability. In Encyclopedia of Algorithms. Springer-Verlag, 2008.
[11]
J. Howison, M. Conklin, and K. Crowston. Flossmole: A collaborative repository for floss research data and analyses. International Journal of Information Technology and WebEngineering, 1(3):17--26, July 2006.
[12]
Ross Ihaka and Robert Gentleman. R: A language for data analysis and graphics. Journal Of Computational And Graphical Statistics, 5(3):299--314, 1996.
[13]
M. G. Kendall. A new measure of rank correlation. Biometrika, June, 1938.
[14]
Barbara A. Kitchenham, Shari Lawrence Pfleeger, Lesley M. Pickard, Peter W. Jones, David C. Hoaglin, Khaled El Emam, and Jarrett Rosenberg. Preliminary guidelines for empirical research in software engineering. IEEE Trans. Softw. Eng., 28(8):721--734, August 2002.
[15]
James Larus and Christos Kozyrakis. Transactional memory. Commun. ACM, 51(7):80--88, July 2008.
[16]
Doug Lea. The java.util.concurrent synchronizer framework. Sci. Comput. Program., 58(3):293--309, 2005.
[17]
Joel Ossher, Sushil Krishna Bajracharya, and Cristina Videira Lopes. Automated dependency resolution for open source software. In Proceedings of the 7th International Working Conference on Mining Software Repositories, pages 130--140, Cape Town, South Africa, May 2010.
[18]
Dag I. K. Sjoberg, Tore Dyba, and Magne Jorgensen. The future of empirical methods in software engineering research. In Proceedings of 2007 Future of Software Engineering, pages 358--378, 2007.
[19]
W. Torres, G. Pinto, B. Fernandes, J. Oliveira, F. Ximenes and F. Castor. How do programmers use concurrency? http://www.cin.ufpe.br/~epona, Steptember, 2011.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLASH '11 Workshops: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'11
October 2011
358 pages
ISBN:9781450311830
DOI:10.1145/2095050
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrent
  2. java
  3. multicore
  4. open-source
  5. parallel

Qualifiers

  • Research-article

Conference

SPLASH '11
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Understanding Software-2.0ACM Transactions on Software Engineering and Methodology10.1145/345347830:4(1-42)Online publication date: 23-Jul-2021
  • (2019)Programmers do not favor lambda expressions for concurrent object-oriented codeEmpirical Software Engineering10.1007/s10664-018-9622-924:1(103-138)Online publication date: 1-Feb-2019
  • (2016)An extensive empirical study on C++ concurrency constructsInformation and Software Technology10.1016/j.infsof.2016.04.00476:C(1-18)Online publication date: 1-Aug-2016
  • (2015)Effective Techniques for Static Race Detection in Java Parallel LoopsACM Transactions on Software Engineering and Methodology10.1145/272997524:4(1-30)Online publication date: 2-Sep-2015
  • (2015)Understanding, refactoring, and fixing concurrency in C#Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2015.82(898-901)Online publication date: 9-Nov-2015
  • (2015)A study and toolkit of CHECK-THEN-ACT idioms of Java concurrent collectionsSoftware Testing, Verification & Reliability10.1002/stvr.156725:4(397-425)Online publication date: 1-Jun-2015
  • (2014)Understanding energy behaviors of thread management constructsACM SIGPLAN Notices10.1145/2714064.266023549:10(345-360)Online publication date: 15-Oct-2014
  • (2014)Understanding energy behaviors of thread management constructsProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660235(345-360)Online publication date: 15-Oct-2014
  • (2014)An empirical investigation on MPI open source applicationsProceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering10.1145/2601248.2601298(1-4)Online publication date: 13-May-2014
  • (2014)Converting Parallel Code from Low-Level Abstractions to Higher-Level AbstractionsProceedings of the 28th European Conference on ECOOP 2014 --- Object-Oriented Programming - Volume 858610.1007/978-3-662-44202-9_21(515-540)Online publication date: 1-Aug-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media