MartinFowler, chief scientist at Thoughtworks, Inc. and author of numerous books on software design and process, talks with BillVenners about balancing maintainability and efficiency, creating tunable software, the role of patterns, and the AgileSoftwareManifesto.
Adaptive, region-based allocator. Allocate non-escaping objects in local regions, which are allocated and freed in conjunction with their associated stack frames. By releasing memory associated with these stack frames, the burden on the garbage collector is reduced, possibly resulting in fewer collections.
Comprehensive approach based upon three analyses: flow-sensitive intraprocedural analysis called variable constraint analysis (VCA), array field analysis, and rectangular array analysis. VCA builds a small constraint graph to infer the relationship between array index expressions and the bounds of the array. Building on VCA, array field analysis is applied on each class and provides information about some arrays stored in fields, while rectangular array analysis is an interprocedural analysis to approximate the shape of arrays, and is useful for finding rectangular (non-ragged) arrays.
Two common exception handling techniques are stack unwinding and stack cutting. Stack unwinding optimizes the normal path, while stack cutting optimizes the exception handling path. This paper proposes a new technique called Exception-Directed Optimization, which optimizes exception-intensive programs without slowing down exception-minimal programs.
Physicists Set New Record for Network Data Transfer - "One of the key advances in this demonstration was Fast Data Transport (FDT; http://monalisa.cern.ch/FDT), a Java application developed by Iosif Legrand of Caltech that runs on all major platforms and uses the NIO libraries to achieve stable disk reads and writes coordinated with smooth data flow across the long-range network." - http://www.physorg.com/news85246030.html
PerformanceTipsHaveAShortShelfLife -- is there anything more recent than 2002 to list here? (In 2002, pool recycling of Java objects produced copiously was a good idea to gain performance. In 2005, avoiding pool recycling of anything but threads, filehandles, and connections is a good idea to gain performance. The main reason being a move to generational GarbageCollection and related VM and GC tweaks.
See: JavaProfilersCategoryJava, CategoryOptimization