Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Do Not Use Direct Buffers for Short Lived, Infrequently Used Objects

The new IO I/O classes (NIO) in java.nio allow the creation and use of direct buffers. These buffers tremendously increase throughput for repeated IO I/O activities. However, their creation and reclamation is more expensive than the creation and reclamation for heap-based non-direct buffers because direct buffers are managed using OS-specific native code. This added management cost makes direct buffers a poor choice for single-use or infrequently used cases. Direct buffers are also not subject to Java's garbage collector, which can cause memory leaks. Frequent allocation of large direct buffers can cause an OutOfMemoryError.

...

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="539c70d328d64ae0-b4cfbe53-40f7497e-ab12975d-a30b580c8c6e5258452f54c6"><ac:plain-text-body><![CDATA[

[[MITRE 2009

AA. Bibliography#MITRE 09]]

[CWE-405

http://cwe.mitre.org/data/definitions/405.html] "Asymmetric Resource Consumption (Amplification)"

]]></ac:plain-text-body></ac:structured-macro>

...

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="9e9a222b26269a2d-cb560698-413b46ff-bbec80d4-a4971874fefbd9495a5fd27b"><ac:plain-text-body><![CDATA[

[[API 2006

AA. Bibliography#API 06]]

Class System

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="261a640a59bf8da7-5a2f1a53-4ef94100-af7d8e04-44daa3c278b25f8175feae2d"><ac:plain-text-body><![CDATA[

[[Bloch 2008

AA. Bibliography#Bloch 08]]

Item 6: "Eliminate obsolete object references"

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="044cd5eed1091a8f-27b88e33-4b984377-94d4af25-744eb6c6893628e4b1da1891"><ac:plain-text-body><![CDATA[

[[Coomes 2007

AA. Bibliography#Coomes 07]]

Garbage Collection Concepts and Programming Tips

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="e01db610367341d0-6e70cb12-48c0400a-bf7a8ef6-0ec53cb284e8b0e66d05b19f"><ac:plain-text-body><![CDATA[

[[Goetz 2004

AA. Bibliography#Goetz 04]]

Java theory and practice: Garbage collection and performance

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="a36a653da558e850-9a5df551-4fe54538-a985b200-e1f686b86ed2d6361882f4bc"><ac:plain-text-body><![CDATA[

[[Lo 2005

AA. Bibliography#Lo 05]]

Security Issues in Garbage Collection

]]></ac:plain-text-body></ac:structured-macro>

...