Listing 2 shows an example where escape analysis can be used to optimize away heap allocation.
清单2显示了一个可以用escape分析把堆分配优化掉的示例。
Some processors, such as Azul's Vega, include hardware support for accelerating heap allocation.
有些处理器,例如Azul的Vega,包含加速堆分配的硬件支持。
The JVM can notify the profiler agent about various events that correspond to, for example, heap allocation, thread start, and so on.
JVM可以通知性能分析代理相关的变化的事件,比如,堆分配、线程启动等等。
You can then pass source file and line number arguments through to the underlying heap allocation routines, and you will immediately be able to see where a bad allocation originated.
然后,可以将源文件和行号参数传递给基础堆分配例程,并能立即看到错误分配的出处。
The simplest way to identify the specific heap allocation call that went bad is to take advantage of the unique allocation request number associated with each block in the debug heap.
标识发生错误的特定堆分配调用的最简单方法是利用与调试堆中的每个块关联的唯一分配请求编号。
The most likely type is a memory problem, such as memory leak, heap fragmentation, or large object allocation.
最有可能的类型是内存问题,如内存泄漏、堆碎片、或者大对象分配。
Dynamic segment allocation allows the additional segments to be used by user heap or Shared memory.
动态段分配让用户堆或共享内存可以使用额外的段。
Increasing the JVM heap size permits more objects to be created before an allocation failure occurs and triggers a garbage collection.
通过增加jvm堆大小,可以在出现分配故障并触发垃圾收集之前创建更多对象。
You see the size of the heap grows from the initial allocation and eventually settles around a range of values.
可以看到堆的大小从最初的分配开始增长,最终稳定在某一范围内。
For most collector implementations, the allocation subsystem keeps a pool of free heap memory, consumed by the application through allocating objects and replenished by the collector through sweeping.
对大多数收集器实现而言,分配子系统持有一个自由堆内存池,应用程序通过分配对象使用该池,然后由收集器通过清理来补充该池。
Heap management is complex, requiring sophisticated algorithms that strive for speed and efficient memory usage in the face of our programs' chaotic allocation patterns.
堆管理的实现过程十分复杂,面对程序内存分配变化莫测的情况,堆管理需要成熟的算法去提升请求的响应速度与内存利用率。
This results in a "flat heap", where the entire heap space is available for transient object allocation rather than just the nursery space.
这将导致一个“扁平堆”,其中,整个堆空间(而不只是保育空间)都可用于临时对象分配。
Consequently, it must incur a long pause to defragment, or compact, the heap to coalesce many smaller free memory areas into larger free memory areas to satisfy a large allocation request.
因此,必然会引发长时间的暂停来整理碎片或进行压缩,堆将很多小块的自由内存区域整合为一块大的自由内存区域,从而满足大型分配请求。
The trigger for a GC is usually an allocation failure - this occurs when the allocation of an object to the JVM heap fails due to insufficient available space.
GC的触发器通常是一个分配失败。分配失败是指,由于可用空间不足,无法将一个对象分配到jvm堆。
This calculation can overflow, which leads to an improperly sized memory allocation. This results in a heap overflow.
这种计算可以溢出,从而导致不恰当的内存分配进而产生这将导致堆溢出。
The aim of the GC is to clear up the JVM heap of any objects that are no longer required, thus providing enough space for the object that previously failed allocation.
GC的目标是清理不再需要的对象的JVM堆,从而向此前分配失败的对象提供足够的空间。
Desired heap size and target utilization must be tuned to the application so target utilization maintains the desired application throughput while letting the GC keep up with allocation.
期望的堆大小和目标利用率必须针对应用程序进行调整,使目标利用率保持期望的应用程序吞吐量,同时使GC能够满足分配。
The heap provides runtime memory allocation, like the stack, meant for data that must outlive the function doing the allocation, unlike the stack. Most languages provide heap management to programs.
堆支持运行时内存分配,和栈不同,大多数语言都允许程序使用堆管理内存。
When analyzing native_stderr.log, we found that the GC cycles were fine, and there were no memory issues, such as memory leak, heap fragmentation, and large object allocation.
在分析native_stderr . log时,我们发现垃圾收集周期没有问题,并且不存在内存问题,如内存泄漏、堆碎片和大对象分配。
However, because of how it lays out objects in the heap, the gencon policy enables much faster object allocation and faster object access.
但是,由于gencon策略在堆中放置对象的特定方式,该策略支持更快的对象分配和更快的对象访问。
Segments four through sixteen (0x3 to 0xf) are available for the user heap if used by dynamic segment allocation.
如果使用动态段分配,那么第4段到第16段(0x3到0xf)供用户堆使用。
The model looks similar to the default AIX segment layout, but segments four through eight (0x3 to 0x7) are available for user heap if dynamic segment allocation (DSA) is used.
这个模型看起来与默认的aix段布局相似,但是如果使用动态段分配(dsa),那么第4段到第8段(0x3到0x7)供进程堆使用。
This entry lets us know that there was an allocation failure, which presents itself when there is not enough contiguous space in the heap to allocate the object.
通过这个条目,我们能够知道有一个分配失败,当heap内没有足够的连续空间可以分配给对象时,就会发生分配失败。
If the large-object section is filled and another large object requests allocation, the object is placed on the other main section of the heap.
如果大型对象部分已满且有另一个大型对象请求分配,那么这个对象就被放在heap的另一个主要部分上。
Prints specific details about the memory at location addr, including its location (stack, heap, text) and, if it is heap memory, then the call chains of its allocation and free history.
打印关于addr单元内存的特殊细节,包括它的储存单元(堆叠,累计,文本)以及,如果它累计了大量内存,还有它的分配调用链和释放历史。
The first ratio is the normal area of the heap (80 percent used for normal processing), and the second is what we have defined for the large objects (20 percent for large-object allocation).
第一个比率是heap的常规区域(80%用于常规处理),第二个比率是我们为大型对象分配的heap 段(20% 分配给大型对象)。
Memory allocation failure happens when the heap has reached maximum size and cannot allocate more memory.
当堆达到最大大小,无法再分配内存时,就会发生内存分配失败。
The allocation interfaces allocate a given amount of storage from the heap, but have different parameters and semantics.
分配接口从堆中分配给定数量的存储器,但具有不同参数和语义。
If the amount of free space available in the small object area is much greater than the size of the allocation request and yet the request can not be satisfied, the heap is fragmented.
如果小对象区域中的可用自由空间量远远大于分配请求大小,但是还无法满足请求,则表明堆中都是碎片。
Objects are allocated directly from a thread local allocation buffer that the thread has previously allocated from the heap.
对象是从线程本地分配缓冲区中直接分配的,线程本地分配缓冲区是线程先前从堆中分配的。
应用推荐