- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
How a garbage collector works of Java Language
If you come from a programming language where allocating objects on the heap is expensive, you may naturally assume that Java’s scheme of allocating everything (except primitives) on the heap is also expensive. However, it turns out that the garbage collector can have a significant impact on increasing the speed of object creation. This might sound a bit odd at first—that storage release affects storage allocation—but it’s the way some JVMs work, and it means that allocating storage for heap objects in Java can be nearly as fast as creating storage on the stack in other languages.
For example, you can think of the C++ heap as a yard where each stakes out its own piece of turf object. This real estate can become abandoned sometime later and must be reused. In some JVMs, the Java heap is quite different; it’s more like a conveyor belt that moves forward every time you allocate a new object. This means that object storage allocation is remarkably rapid. The “heap pointer” is simply moved forward into virgin territory, so it’s effectively the same as C++’s stack allocation. (Of course, there’s a little extra overhead for bookkeeping, but it’s nothing like searching for storage.)
You might observe that the heap isn’t in fact a conveyor belt, and if you treat it that way, you’ll start paging memory—moving it on and off disk, so that you can appear to have more memory than you actually do. Paging significantly impacts performance. Eventually, after you create enough objects, you’ll run out of memory. The trick is that the garbage collector steps in, and while it collects the garbage it compacts all the objects in the heap so that you’ve effectively moved the “heap pointer” closer to the beginning of the conveyor belt and farther away from a page fault. The garbage collector rearranges things and makes it possible for the high-speed, infinite-free-heap model to be used while allocating storage.
To understand garbage collecti
您可能关注的文档
- 矿用液压支架的设计-液压支架的设计.doc
- 《企业组网》课程设计无线校园网的规划与设计[毕业设计].doc
- 16×16点阵LED电子显示屏设计(电子信息技术专业单片机论文).doc
- 220KV架线施工作业指导书.doc
- BBS论坛的设计与实现( 计算机科学与技术专业毕业论文).doc
- C++简单图像处理系统(信息与计算科学专业数字图象处理课程设计).doc
- C++数据结构算法演示系统(论文).doc
- CA6140车床的数控改装设计.doc
- EDA课程设计--病房呼叫系统的设计.doc
- Java基于RFID的景点导览系统.doc
- 【vc++】客户管理系统毕业设计论文[毕业设计,精品论文].doc
- asp.net就业管理系统[毕业设计,精品论文].doc
- asp.net中小规模旅馆管理系统[毕业设计,精品论文].doc
- asp;net新型农村合作医疗管理网站开发[毕业设计,精品论文].doc
- asp;net新月网上书店[毕业设计,精品论文].doc
- C++管理信息系统在企业的应用[毕业设计,精品论文].doc
- c++基于socket的网络聊天室[毕业设计,精品论文].doc
- C++基于局域网Linux环境下的心跳检测系统实现[毕业设计,精品论文].doc
- C++声音压缩及应用实例设计[毕业设计,精品论文].doc
- C++师生教学互动平台的设计和实现[毕业设计,精品论文].doc
文档评论(0)