Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!bionet!ig!arizona!debray From: debray@arizona.edu (Saumya K. Debray) Newsgroups: comp.lang.prolog Subject: Re: Inline expansion versus threaded code Summary: paging, code reorganization Message-ID: <10595@megaron.arizona.edu> Date: 3 May 89 15:52:07 GMT References: <1654@kulcs.kulcs.uucp> Organization: U of Arizona CS Dept, Tucson Lines: 27 There seems to be a consensus that native code implementations of Prolog may suffer because of non-locality of code references, and the excessive paging that results. However, it may be possible to reduce the amount of paging, using code reorganization techniques developed for cache management. The following is the abstract of a TR titled "Code Reorganization for Instruction Caches" by A. Dain Samples and Paul Hilfinger (UC Berkeley, Oct 1988): "Program performance can be improved on machines with virtual memory by reorganizing the program's address space. We address the question whether reorganization could benefit programs on machines with instruction caches. We have performed experiments to determine the efficacy of restructuring using simple reordering algorithms and profile data, concluding that performance improvement can be obtained relatively cheaply. Experiments show improvements in miss rates on the order of 30% to 50%, and sometimes as high as 50% to 80%, by performing a simple algorithm that relocates only 3% to 8% of the basic blocks of a program." -- Saumya Debray CS Department, University of Arizona, Tucson internet: debray@arizona.edu uucp: arizona!debray