ABSTRACT

This chapter discusses several programming performance improvement techniques and strategies, including fundamental computer engineering methods, such as accessing a file on an external storage and output device. The techniques and strategies also includes: computational techniques, such as using parallel processing to speed up the performance; and spatial methods, such as spatial index for improving access to large amounts of GIS data. The chapter provides general ideas, exemplar algorithms, and programming demonstrations. The fundamental intersection algorithm is used to illustrate how these techniques can be utilized to improve performance. The chapter explores performance challenges when dealing with big data or computing-intensive process and buffering techniques for reducing the number of accesses to slow devices, for example, hard drive. It explains multithreading techniques for executing parallelizable processes concurrently, bounding box check for significantly reducing the number of time-consuming calculations, and spatial index to get to datasets of interest directly instead of iterating through all data.