The purpose of this paper is to identify the increased memory usage of software appli-cations. The modern software development cycle focuses on functionality and often ignores aspects of optimal resource usage. Limited physical scaling sets an upper limit on the system's capacity to process requests. The presence of unchanged objects with the same information is a sign of increased memory consumption. Avoiding duplicate objects in memory allows for a more rational use of the existing resource and an increase in the amount of information proc-essed. Existing scientific publications focus on the study of memory leakage problems, and limit their attention to excessive memory usage due to the lack of a unified model for finding excessive memory usage. It is worth noting that existing programming templates contain the ‘object pool’ template, but leave the conclusion about the feasibility of its implementation to engineers without providing a mathematical basis. The paper presents the development of a mathematical model for the process of detecting duplicate objects with the immutability prop-erty of the String type in a memory snapshot. Industrial systems that require hundreds of GB of RAM to operate and contain millions of objects in RAM are analysed. Given this scale of data, there is a need to optimise the duplicate detection process. The research method is to analyse memory snapshots of highly loaded systems using the software code developed on .NET technology and the ClrMD library. The memory snapshot reflects the state of the proc-ess under study at a given time, contains all objects, threads and operations performed. The ClrMD library allows you to programmatically examine objects, their types, get field values, and build graphs of relationships between objects. Based on the results of the study, an opti-misation was proposed that allows to speed up the process of finding duplicates several times. The scientific contribution of the study is the creation of a mathematically sound approach that significantly reduces the use of memory resources and optimises computing processes. The practical usefulness of the model is confirmed by the optimisation results achieved through the recommendations, reduced hosting costs (which provides greater cost-effectiveness in the deployment and use of software systems in industrial environments), and increased data processing.
Read full abstract