Research Interests

Keywords: Managed languages; memory efficiency; memory abstraction; memory management; dynamic optimization; software-hardware co-design

The programming language and underlying hardware determine application performance, and both are undergoing revolutionary shifts. As applications have become more sophisticated and capable, programmers have chosen managed languages in many domains for ease of development. These languages abstract memory management from the programmer, which can introduce time and space overhead but also provide opportunities for dynamic optimization. Optimizing memory performance is in part paramount because hardware is reaching physical limits. Recent trends towards chip multiprocessor machines exacerbate the memory system bottleneck because they are adding cores without adding commensurate bandwidth. Both language and architecture trends add stress to the memory system and degrade application performance.

I exploit the language abstraction to analyze and optimize memory efficiency on emerging hardware. In my dissertation, I studied the sources of memory inefficiencies on two levels: heap data and hardware storage traffic. Finding that arrays are a dominant source of heap inefficiency, I designed and implemented z-rays, a flexible, time and space efficient layout of arrays. When analyzing traffic to main memory, I found a large majority of the traffic is useless. I designed a software-hardware cooperative optimization that invalidates data in cache based on passed-down program semantics in order to eliminate useless traffic. These techniques improve memory system efficiency and performance. We show that the memory abstraction in managed languages is not just a cost to be borne, but an opportunity to improve space and time efficiency and overcome the memory wall. We enhance the productivity and performance of ubiquitous managed languages on current and future architectures.

In broader terms, I am interested in studying more efficient ways for the application, compiler and runtime system, operating system, and underlying architecture to cooperate for optimal system performance. In particular, each layer of this stack has its own method of memory management that can be limited by its narrow view: there should be more coordination to inform dynamic optimization and overcome the high overheads of memory system performance.

Here is the link to get Jikes working on the Sniper simulator.


Conferences and Journals

  • J.B. Sartor, W. Heirman, S.M. Blackburn, L. Eeckhout and K.S. McKinley. Cooperative Cache Scrubbing. International Conference on Parallel Architectures and Compilation Techniques (PACT), pages 15-26, Edmonton, Alberta, Canada, August 2014. Acceptance Rate = 26%. Pdf version of paper Powerpoint presentation given at PACT
  • C. González-Álvarez, J.B. Sartor, C. Álvarez, D. Jiménez-González, and L. Eeckhout. Accelerating an Application Domain with Specialized Functional Units. ACM Transactions on Architecture and Code Optimization (TACO) , Vol 10, No 4, Article 47, Dec 2013. Pdf version of paper
  • K. Du Bois, J.B. Sartor, S. Eyerman, and L. Eeckhout. Bottle Graphs: Visualizing Scalability Bottlenecks in Multi-Threaded Applications. ACM SIGPLAN 2013 Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 355-372, Indianapolis, Indiana, October 2013. Acceptance Rate = 26%. Pdf version of paper
  • K. Du Bois, S. Eyerman, J.B. Sartor, and L. Eeckhout. Criticality Stacks: Identifying Critical Threads in Parallel Programs using Synchronization Behavior. International Symposium on Computer Architecture (ISCA), pages 511-522, Tel-Aviv, Israel, June 2013. Acceptance Rate = 19%. Pdf version of paper
  • J.B. Sartor, and L. Eeckhout. Exploring Multi-Threaded Java Application Performance on Multicore Hardware. ACM SIGPLAN 2012 Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 281-296, Tucson, Arizona, October 2012. Acceptance Rate = 25%. Pdf version of paper   OOPSLA presentation
  • X. Yang, S.M. Blackburn, D. Frampton, J.B. Sartor, and K.S. McKinley. Why Nothing Matters: The Impact of Zeroing. ACM SIGPLAN 2011 Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 307-324, Portland, Oregon, October 2011. Acceptance Rate = 37%. Pdf version of paper
  • J.B. Sartor, S.M. Blackburn, D. Frampton, M. Hirzel, and K.S. McKinley. Z-Rays: Divide Arrays and Conquer Speed and Flexibility. ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation (PLDI), pages 471-482, Toronto, Canada, June 2010. Acceptance Rate = 20%. Pdf version of paper   Arraylet Patch for Jikes 3.0.1   PLDI presentation
  • J.B. Sartor, M. Hirzel, and K.S. McKinley. No Bit Left Behind: The Limits of Heap Data Compression. The 2008 International Symposium on Memory Management (ISMM), pages 111-120, Tucson, Arizona, June 2008. Pdf version of paper


  • J.B. Sartor, S. Venkiteswaran, K.S. McKinley, and Z. Wang. Cooperative Caching with Keep-Me and Evict-Me. The Ninth Annual Workshop on Interaction between Compilers and Computer Architectures., pages 46-57, San Francisco, California, Feb. 2005. Pdf version of paper Ps version of paper

Technical Reports

  • S. Fytraki, O. Kocberber, E. Vlachos, J.B. Sartor, B. Grot, B. Falsafi. BugSifter: A Generalized Accelerator for Flexible Instruction-Grain Monitoring. Technical Report 187154 at École Polytechnique Fédérale de Lausanne, 2012. Extended Report pdf
  • J.B. Sartor, M. Hirzel, and K.S. McKinley. No Bit Left Behind: The Limits of Heap Data Compression. Technical Report TR-08-17 at The University of Texas at Austin, 2008. Extended Report pdf


  • Have served on/been invited to serve on the following program committees: ISMM 2011, ICOOOLPS 2011, SSPA 2012, IISWC 2012, CGO 2013, ISMM 2013, OOPSLA 2013, SPLASH Doctoral Symposium 2013, PPPJ 2013, CGO 2014, OOPSLA ERC 2014, MSPC 2014, PPPJ 2014, CGO 2015, ASPLOS 2015, PLDI ERC 2015.
  • First place in poster and presentation rounds in the graduate student category of ACM Student Research Competition at PLDI conference, June 2009
  • Best student presentation at The International Symposium on Memory Management for ``No Bit Left Behind'' paper, June 2008
  • NSF graduate student award for East Asia and Pacific Summer Institute in Australia. While visiting, gave research talks at Australian National U, U Melbourne, and U New South Whales, Summer 2008
  • UT Computer Science Teaching Assistant Excellence Award, Fall 2003

Research Projects and Groups


Ph.D. in Computer Science Dissertation
University of Texas at Austin, Aug 2010
Advisor: Kathryn McKinley
Co-advisor: Steve Blackburn

M.S. in Computer Science
University of Texas at Austin, Dec 2004

Study in Computer Science Education
University of Texas at Austin, Aug 02 - Dec 03

B.S. in honors Computer Science and Mathematics, minor in Spanish
University of Arizona, Dec 2001

Work Experience

IBM TJ Watson, Research Intern in The Dynamic Optimization Group, June - Dec 2007
At IBM, I worked on a project to optimize page faults in memory-constrained environments through the cooperation of the garbage collector and operating system by changing how the collector traverses and organizes objects.

Intel Corporation, Research Intern in The Managed Runtime Division, June - Dec 2005
At Intel, I was trying to make a Java virtual machine cache-coherent non-uniform memory access (cc-NUMA) aware with dynamic profile-guided object migration. We used hardware performance monitors to inform migration of objects between threads with the garbage collector.

Teaching Experience

De Hogeschool West-Vlaanderen Industriële Wetenschappen in Kortrijk, Belgium, Professor teaching C++ Computer Programming in Fall 2012 and Fall 2013
I organized and taught 18 hours of C++ to masters students as an introduction to the GPU graphics programming course, including weekly programming assignments, labs with exercises, and a final exam.

University of Texas at Austin, Assistant Instructor teaching Introduction to Computer Programming: C++, Fall 2009 and Spring 2010
I designed a course to introduce the C++ language to students who had prior programming experience in other languages. I taught the 1 credit semester class focusing on the details of C++, including weekly programming assignments and quizzes.

University of Texas at Austin, Graduate Teaching Assistant Fall 02 - Spring 04
I was a teaching assistant for the following classes under Dr. Steve Keckler: Honors Computer Organization and Honors Computer Architecture, and under Dr. Roger Priebe: Computer Fluency and Elements of Computing and Programming. I received annual TA Excellence Award from department of CS under Dr. Keckler. I taught the building blocks of computer systems, architecture fundamentals, introductory programming in Java, and the basics of computing to non-majors.


  • I ran 2 half-marathons in Austin, Texas. I have participated in several sprint triathlons begining in May 2008, and an olympic triathlon in May 2010.
  • I earned my black belt in Kung Fu in December of 2006.
  • I have been to every continent and have traveled extensively, as I enjoy the thrill of discovering new cultures and places.
  • Some of my other hobbies include hiking, kayaking, camping, dancing, scuba-diving, yoga, and rock climbing.