Urs Hölzle - Academia.edu (original) (raw)
Papers by Urs Hölzle
Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...
Conference on Object-Oriented Programming Systems, Languages, and Applications, 1994
Programming systems should be both re- sponsive (to support rapid development) and efficient (to ... more Programming systems should be both re- sponsive (to support rapid development) and efficient (to complete computations quickly). Pure object-ori- ented languages are harder to implement efficiently since they need optimization to achieve good perfor- mance. Unfortunately, optimization conflicts with in- teractive responsiveness because it tends to produce long compilation pauses, leading to unresponsive pro- gramming environments. Therefore, to achieve good
Lecture Notes in Computer Science, 1993
... 1 type SubA: BaseA { One of many subtypes of BaseA } methods msubaL, msuba2, . ... Typing m... more ... 1 type SubA: BaseA { One of many subtypes of BaseA } methods msubaL, msuba2, . ... Typing mechanisms can be used to view an object from different viewpoints. For exam-ple, in any language with subtyping, an object of type SubA can also be viewed as being of type BaseA. ...
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications - OOPSLA '95, 1995
Two promising optimization techniques for object-oriented languages are type feedback (profile-ba... more Two promising optimization techniques for object-oriented languages are type feedback (profile-based receiver class prediction) and concrete type inference (static analysis). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 S's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks.We discuss several other issues which, given the
... In a limit case, the amount of inherently serial work performed on behalf of a user request b... more ... In a limit case, the amount of inherently serial work performed on behalf of a user request by slow single-threaded cores will dominate overall execution time. Cost numbers used bywimpy-core evangelists always exclude software development costs. ...
Generational garbage collectors need to keep track of references from older to younger generation... more Generational garbage collectors need to keep track of references from older to younger generations so that younger generations can be garbage-collected without inspecting every object in the older generation (s)[LH83],[Ung86]. The set of locations potentially containing ...
Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...
Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message ... more Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a set of typical object-oriented SELF programs, PICs achieve a median speedup of 11%.
Lecture Notes in Computer Science, 1999
We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmar... more We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmark suite. Most of the programs are real- world applications with high demands on the memory system. For each program, we measured as much low level data as possible, including age and size distribution, type distribution, and the overhead of object alignment. Among
Lecture Notes in Computer Science, 1996
143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods o... more 143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods omitted) ) class PolarPoint : Point { float rho, theta; virtual float get_x() {return rho * cos(theta);} (other methods omitted) } Since p could refer to either a CartesianPoint or a ...
Lecture Notes in Computer Science, 1999
ACM SIGPLAN Notices, 1994
Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...
Conference on Object-Oriented Programming Systems, Languages, and Applications, 1994
Programming systems should be both re- sponsive (to support rapid development) and efficient (to ... more Programming systems should be both re- sponsive (to support rapid development) and efficient (to complete computations quickly). Pure object-ori- ented languages are harder to implement efficiently since they need optimization to achieve good perfor- mance. Unfortunately, optimization conflicts with in- teractive responsiveness because it tends to produce long compilation pauses, leading to unresponsive pro- gramming environments. Therefore, to achieve good
Lecture Notes in Computer Science, 1993
... 1 type SubA: BaseA { One of many subtypes of BaseA } methods msubaL, msuba2, . ... Typing m... more ... 1 type SubA: BaseA { One of many subtypes of BaseA } methods msubaL, msuba2, . ... Typing mechanisms can be used to view an object from different viewpoints. For exam-ple, in any language with subtyping, an object of type SubA can also be viewed as being of type BaseA. ...
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications - OOPSLA '95, 1995
Two promising optimization techniques for object-oriented languages are type feedback (profile-ba... more Two promising optimization techniques for object-oriented languages are type feedback (profile-based receiver class prediction) and concrete type inference (static analysis). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 S's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks.We discuss several other issues which, given the
... In a limit case, the amount of inherently serial work performed on behalf of a user request b... more ... In a limit case, the amount of inherently serial work performed on behalf of a user request by slow single-threaded cores will dominate overall execution time. Cost numbers used bywimpy-core evangelists always exclude software development costs. ...
Generational garbage collectors need to keep track of references from older to younger generation... more Generational garbage collectors need to keep track of references from older to younger generations so that younger generations can be garbage-collected without inspecting every object in the older generation (s)[LH83],[Ung86]. The set of locations potentially containing ...
Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...
Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message ... more Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a set of typical object-oriented SELF programs, PICs achieve a median speedup of 11%.
Lecture Notes in Computer Science, 1999
We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmar... more We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmark suite. Most of the programs are real- world applications with high demands on the memory system. For each program, we measured as much low level data as possible, including age and size distribution, type distribution, and the overhead of object alignment. Among
Lecture Notes in Computer Science, 1996
143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods o... more 143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods omitted) ) class PolarPoint : Point { float rho, theta; virtual float get_x() {return rho * cos(theta);} (other methods omitted) } Since p could refer to either a CartesianPoint or a ...
Lecture Notes in Computer Science, 1999
ACM SIGPLAN Notices, 1994