A garbage collector relieves programmers from manual memory management and improves productivity and program reliability. However, there are many other finite system resources that programmers must manage by themselves, such as sockets and database connections. Growing resource leaks can lead to performance degradation and even program crashes. This paper presents the automatic resource collection approach called Resco (RESource COllector) to tolerate non-memory resource leaks. Resco prevents performance degradation and crashes due to resource leaks by two steps. First, it utilizes monitors to count resource consumption and request resource collections independently of memory usage when resource limits are about to be violated. Second, it responds to a resource collection request by safely releasing leaked resources. We implement Resco based on a Java Virtual Machine for Java programs. The performance evaluation against standard benchmarks shows that Resco has a very low overhead, around 1% or 3%. Experiments on resource leak bugs show that Resco successfully prevents most of these programs from crashing with little increase in execution time.
The copyright of the original papers published on this site belongs to IEICE. Unauthorized use of the original or translated papers is prohibited. See IEICE Provisions on Copyright for details.
Copy
Ziying DAI, Xiaoguang MAO, Yan LEI, Xiaomin WAN, Kerong BEN, "Resco: Automatic Collection of Leaked Resources" in IEICE TRANSACTIONS on Information,
vol. E96-D, no. 1, pp. 28-39, January 2013, doi: 10.1587/transinf.E96.D.28.
Abstract: A garbage collector relieves programmers from manual memory management and improves productivity and program reliability. However, there are many other finite system resources that programmers must manage by themselves, such as sockets and database connections. Growing resource leaks can lead to performance degradation and even program crashes. This paper presents the automatic resource collection approach called Resco (RESource COllector) to tolerate non-memory resource leaks. Resco prevents performance degradation and crashes due to resource leaks by two steps. First, it utilizes monitors to count resource consumption and request resource collections independently of memory usage when resource limits are about to be violated. Second, it responds to a resource collection request by safely releasing leaked resources. We implement Resco based on a Java Virtual Machine for Java programs. The performance evaluation against standard benchmarks shows that Resco has a very low overhead, around 1% or 3%. Experiments on resource leak bugs show that Resco successfully prevents most of these programs from crashing with little increase in execution time.
URL: https://globals.ieice.org/en_transactions/information/10.1587/transinf.E96.D.28/_p
Copy
@ARTICLE{e96-d_1_28,
author={Ziying DAI, Xiaoguang MAO, Yan LEI, Xiaomin WAN, Kerong BEN, },
journal={IEICE TRANSACTIONS on Information},
title={Resco: Automatic Collection of Leaked Resources},
year={2013},
volume={E96-D},
number={1},
pages={28-39},
abstract={A garbage collector relieves programmers from manual memory management and improves productivity and program reliability. However, there are many other finite system resources that programmers must manage by themselves, such as sockets and database connections. Growing resource leaks can lead to performance degradation and even program crashes. This paper presents the automatic resource collection approach called Resco (RESource COllector) to tolerate non-memory resource leaks. Resco prevents performance degradation and crashes due to resource leaks by two steps. First, it utilizes monitors to count resource consumption and request resource collections independently of memory usage when resource limits are about to be violated. Second, it responds to a resource collection request by safely releasing leaked resources. We implement Resco based on a Java Virtual Machine for Java programs. The performance evaluation against standard benchmarks shows that Resco has a very low overhead, around 1% or 3%. Experiments on resource leak bugs show that Resco successfully prevents most of these programs from crashing with little increase in execution time.},
keywords={},
doi={10.1587/transinf.E96.D.28},
ISSN={1745-1361},
month={January},}
Copy
TY - JOUR
TI - Resco: Automatic Collection of Leaked Resources
T2 - IEICE TRANSACTIONS on Information
SP - 28
EP - 39
AU - Ziying DAI
AU - Xiaoguang MAO
AU - Yan LEI
AU - Xiaomin WAN
AU - Kerong BEN
PY - 2013
DO - 10.1587/transinf.E96.D.28
JO - IEICE TRANSACTIONS on Information
SN - 1745-1361
VL - E96-D
IS - 1
JA - IEICE TRANSACTIONS on Information
Y1 - January 2013
AB - A garbage collector relieves programmers from manual memory management and improves productivity and program reliability. However, there are many other finite system resources that programmers must manage by themselves, such as sockets and database connections. Growing resource leaks can lead to performance degradation and even program crashes. This paper presents the automatic resource collection approach called Resco (RESource COllector) to tolerate non-memory resource leaks. Resco prevents performance degradation and crashes due to resource leaks by two steps. First, it utilizes monitors to count resource consumption and request resource collections independently of memory usage when resource limits are about to be violated. Second, it responds to a resource collection request by safely releasing leaked resources. We implement Resco based on a Java Virtual Machine for Java programs. The performance evaluation against standard benchmarks shows that Resco has a very low overhead, around 1% or 3%. Experiments on resource leak bugs show that Resco successfully prevents most of these programs from crashing with little increase in execution time.
ER -