Too many heap sections как исправить
Warning: This Website is for Adults Only!
This Website is for use solely by responsible adults over 18-years old (or the age of consent in the jurisdiction from which it is being accessed). The materials that are available within this Website include graphic visual depictions and descriptions of nudity and sexual activity and must not be accessed by anyone who is under 18-years old and the age of consent. Visiting this Website if you are under 18-years old and the age of consent may be prohibited by the law of your jurisdiction.
- I am an adult, at least 18-years old, and the age of consent in my jurisdiction.
- I have the legal right to access and possess adult material in my community.
- I will not permit any person under 18-years old to have access to any of the materials contained within this Website.
- I am voluntarily choosing to access this Website because I want to view, read, or hear the various available materials.
- I do not find images of nude adults, adults engaged in sexual acts, or other sexual material to be offensive or objectionable.
- I will leave this Website promptly if I am in any way offended by the sexual nature of any material.
- I understand and will abide by the standards and laws of my community.
- By logging on and viewing any part of the Website, I will not hold the Website’s owners or its employees responsible for any materials located on the Website.
- I acknowledge that the Website’s Terms-of-Use Agreement governs my use of the Website, and I have reviewed and agreed to be bound by those terms.
Fatal error in gc, too many heap sections
Ok so after the update that was released in the last 24 hours my server keeps «Freezing» after a bit i cant put in any commands and everything in game becomes unresponsive i cant place things or upgrade buildings or manage my inventory. I finally got an error message to show up after waiting about 30 minutes. (Shown in the screenshot.)
Attached Files:

ee70af888d1e8104af42431b5e9d3edb.png
File size: 242.9 KB Views: 62
Wulf Community Admin
From some of the suggestions, it may be caused by running out of memory. How much memory does your server have?
|HvK|Shad0w_General
Server has 16GB DDR3 so i dont know how it could be running out of memory.
[DOUBLEPOST=1438926357][/DOUBLEPOST]Well even just letting the server run with no one joining it comes up with this same error after about 15 minutes.
Wulf Community Admin
|HvK|Shad0w_General said: ↑
Server has 16GB DDR3 so i dont know how it could be running out of memory.
[DOUBLEPOST=1438926357][/DOUBLEPOST]Well even just letting the server run with no one joining it comes up with this same error after about 15 minutes.
Click to expand.
What’s the memory usage after that time? Does it rapidly go up?
|HvK|Shad0w_General
Ok it crashes on 5 minutes and no the memory doesn’t rapidly go up but it does go up, as in it just passed 5 GB RAM usage. Edit: it just hit 10 GB RAM Usages and it still climbing.
[DOUBLEPOST=1438929263][/DOUBLEPOST]Here is the log for the last run there is no error message this is what I don’t get..
Attached Files:
log.txt
File size: 36.5 KB Views: 50
Nark0t1k
I have 32 go ram for this
I already try to use -maxMem=8192 to force it to use less but doesn’t change .
Hum server seem to use too much ram .
![[IMG]](https://oxidemod.org/threads/fatal-error-in-gc-too-many-heap-sections.10897/http%3A%2F%2Fi.imgur.com%2FyW09jhw.png&hash=796d2c6a381984b7d9a7fe875e258cf2)
Happen only with oxyde loaded ?
Last edited by a moderator: Aug 7, 2015
Wulf Community Admin
Nark0t1k said: ↑
I got same issue here .
I have 32 go ram for this
I already try to use -maxMem=8192 to force it to use less but doesn’t change .
Hum server seem to use too much ram .
![[IMG]](https://oxidemod.org/threads/fatal-error-in-gc-too-many-heap-sections.10897/http%3A%2F%2Fi.imgur.com%2FyW09jhw.png&hash=796d2c6a381984b7d9a7fe875e258cf2)
Happen only with oxyde loaded ?
Click to expand.
If it only happens with Oxide, then you’re likely running a leaky plugin, as I run my test server 24/7 and never go above 900mb.
How to improve WebStorm performance
In this section, you’ll find some tips on how to make WebStorm run faster. They will be especially helpful if you’re working on large projects. If you’ve given these tips a try, but WebStorm is still slow, please report a performance problem as described below.
Increase memory heap
If you’re working on a large project, your IDE might start to run slowly. One of the first things you can try to do to fix this is to increase the memory heap size in WebStorm.
Increase memory heap via IDE
- Press Shift twice and search memory to get to the Memory Settings dialog, where you can adjust the limit. Make sure not to overdo it – 4 GB should be enough.
- Restart the IDE after you have made the changes.
Increase memory heap via Toolbox App
You can also change the memory heap size using the Toolbox App.
- Open the app, click the three dots next to your WebStorm installation, and select Settings .

- Go to the Configuration section and set a new value in the Maximum heap size field as shown below. Most of the time, setting it to 4 GB should be enough.

- Restart the IDE once you make the changes.
Bonus tip: Turn on memory indicator
You can check whether performance slowdowns are caused by low heap memory by enabling the memory indicator.

- Right-click the bottom-right corner of the WebStorm status bar and select Memory Indicator from the list there.
Speed up indexing
Indexing is what makes WebStorm smart. It is responsible for all of its core features, such as code completion, code quality analysis, navigation, syntax highlighting, and refactorings. If you work with large files or projects, WebStorm’s indexing might become sluggish. Here’s what you can do to help speed it up.
Exclude directories and files
If you exclude a file or a folder, it will remain a part of a project, but WebStorm will no longer index it. Look through your project and see if there is anything you could exclude from indexing. We recommend looking for any dynamically generated files, such as compilation output folders, and excluding them.
- To exclude a file, right-click it in the Project tool window and select Override File Type | Plain text . Plain text files are marked with the icon.
- To exclude a folder, right-click it in the Project tool window and select Mark Directory as | Excluded . Excluded folders are marked with the icon.
Use shared indexes
All JetBrains IDEs, including WebStorm, come bundled with the Shared Project Indexes plugin. Its main goal is to reduce the overall indexing time and CPU usage of your IDE, so please make sure it is enabled on the Installed tab of the Settings | Plugins .
Change highlighting level for a file
By default, WebStorm analyzes your code as you type and highlights all problems found in the current file. If your file is large, this might make WebStorm a bit laggy. In this case, you can temporarily change the highlighting level from All Problems to Syntax or None . Don’t forget to turn it back on once you’re done to avoid missing any important problems!
Disable features you don’t need
There are quite a few tips on the internet suggesting what features you could turn off to improve WebStorm performance. Although some of these things can really help, we would kindly ask you to be careful with this step . It is possible to accidentally disable some essential features that will make your experience working with WebStorm worse.
Here are several things you can safely try disabling.
Code Vision
Code Vision shows additional information about your code, making it easier to track the usage of various classes, methods, type aliases, and interfaces. This feature can be quite resource-hungry in large projects. You can try turning it off in Settings | Editor | Inlay Hints > Code vision .
As an option, you can also disable other inlay hints to see whether it improves WebStorm performance.
Unused global symbol inspection
Like Code Vision, this feature can also affect WebStorm performance. You can go to Settings | Editor | Inspections , look for the Unused global symbol inspection there, and try to turn it off.

Bundled plugins you don’t need
WebStorm includes pre-installed plugins that provide support for many different technologies. These plugins support technologies that the majority of our users need, but plugins providing support that you don’t need can be disabled.
- Open the Settings dialog ( Control+Alt+S ) and go to Plugins .
- Switch to the Installed tab to review the list of plugins you have installed in WebStorm.
- If you want to go over the bundled plugins specifically, you can also use the Bundled filter by clicking on the three-dot kebab icon.
Live Templates for some technologies
WebStorm comes packed with code snippets, or Live Templates as we call them, that you can quickly add code fragments you use often. You can disable any Live Templates for technologies you are not using under Settings | Editor | Live Templates .

Emmet
If you don’t work with Emmet a lot, you can disable it in WebStorm, too. For this, go to Settings | Editor | Emmet .

Report performance problems
If the tips above didn’t help, please report your performance problem to our issue tracker. To investigate it, we’ll need you to provide the WebStorm logs and a CPU usage snapshot .
You can find the WebStorm logs under Help | Collect Logs and Diagnostic Data in the main menu.
To collect a CPU usage snapshot
- In the main menu, go to Help | Diagnostic Tools | Start CPU Usage Profiling .
- Reproduce the problem you’ve experienced.
- Go back to the main menu and select Help | Diagnostic Tools | Stop CPU Usage Profiling .
- Collect the captured snapshot and share it with us along with your zipped log folder. If the snapshot is too large to attach to the issue, please upload it here or use another file upload service.
6 The Parallel Collector
The parallel collector (also referred to here as the throughput collector) is a generational collector similar to the serial collector; the primary difference is that multiple threads are used to speed up garbage collection. The parallel collector is enabled with the command-line option -XX:+UseParallelGC . By default, with this option, both minor and major collections are executed in parallel to further reduce garbage collection overhead.
On a machine with N hardware threads where N is greater than 8, the parallel collector uses a fixed fraction of N as the number of garbage collector threads. The fraction is approximately 5/8 for large values of N. At values of N below 8, the number used is N. On selected platforms, the fraction drops to 5/16. The specific number of garbage collector threads can be adjusted with a command-line option (which is described later). On a host with one processor, the parallel collector will likely not perform as well as the serial collector because of the overhead required for parallel execution (for example, synchronization). However, when running applications with medium-sized to large-sized heaps, it generally outperforms the serial collector by a modest amount on machines with two processors, and usually performs significantly better than the serial collector when more than two processors are available.
The number of garbage collector threads can be controlled with the command-line option -XX:ParallelGCThreads= . If explicit tuning of the heap is being done with command-line options, then the size of the heap needed for good performance with the parallel collector is the same as needed with the serial collector. However, enabling the parallel collector should make the collection pauses shorter. Because multiple garbage collector threads are participating in a minor collection, some fragmentation is possible due to promotions from the young generation to the tenured generation during the collection. Each garbage collection thread involved in a minor collection reserves a part of the tenured generation for promotions and the division of the available space into these «promotion buffers» can cause a fragmentation effect. Reducing the number of garbage collector threads and increasing the size of the tenured generation will reduce this fragmentation effect.
Generations
As mentioned earlier, the arrangement of the generations is different in the parallel collector. That arrangement is shown in Figure 6-1, «Arrangement of Generations in the Parallel Collector»:
Figure 6-1 Arrangement of Generations in the Parallel Collector

Description of «Figure 6-1 Arrangement of Generations in the Parallel Collector»
Parallel Collector Ergonomics
The parallel collector is selected by default on server-class machines. In addition, the parallel collector uses a method of automatic tuning that allows you to specify specific behaviors instead of generation sizes and other low-level tuning details. You can specify maximum garbage collection pause time, throughput, and footprint (heap size).
- Maximum Garbage Collection Pause Time: The maximum pause time goal is specified with the command-line option -XX:MaxGCPauseMillis= . This is interpreted as a hint that pause times of milliseconds or less are desired; by default, there is no maximum pause time goal. If a pause time goal is specified, the heap size and other parameters related to garbage collection are adjusted in an attempt to keep garbage collection pauses shorter than the specified value. These adjustments may cause the garbage collector to reduce the overall throughput of the application, and the desired pause time goal cannot always be met.
- Throughput: The throughput goal is measured in terms of the time spent doing garbage collection versus the time spent outside of garbage collection (referred to as application time). The goal is specified by the command-line option -XX:GCTimeRatio= , which sets the ratio of garbage collection time to application time to 1 / (1 + ) . For example, -XX:GCTimeRatio=19 sets a goal of 1/20 or 5% of the total time in garbage collection. The default value is 99, resulting in a goal of 1% of the time in garbage collection.
- Footprint: Maximum heap footprint is specified using the option -Xmx . In addition, the collector has an implicit goal of minimizing the size of the heap as long as the other goals are being met.
Priority of Goals
The goals are addressed in the following order:
- Maximum pause time goal
- Throughput goal
- Minimum footprint goal
The maximum pause time goal is met first. Only after it is met is the throughput goal addressed. Similarly, only after the first two goals have been met is the footprint goal considered.
Generation Size Adjustments
The statistics such as average pause time kept by the collector are updated at the end of each collection. The tests to determine if the goals have been met are then made and any needed adjustments to the size of a generation is made. The exception is that explicit garbage collections (for example, calls to System.gc() ) are ignored in terms of keeping statistics and making adjustments to the sizes of generations.
Growing and shrinking the size of a generation is done by increments that are a fixed percentage of the size of the generation so that a generation steps up or down toward its desired size. Growing and shrinking are done at different rates. By default a generation grows in increments of 20% and shrinks in increments of 5%. The percentage for growing is controlled by the command-line option -XX:YoungGenerationSizeIncrement= for the young generation and -XX:TenuredGenerationSizeIncrement= for the tenured generation. The percentage by which a generation shrinks is adjusted by the command-line flag -XX:AdaptiveSizeDecrementScaleFactor= . If the growth increment is X percent, then the decrement for shrinking is X/D percent.
If the collector decides to grow a generation at startup, then there is a supplemental percentage is added to the increment. This supplement decays with the number of collections and has no long-term effect. The intent of the supplement is to increase startup performance. There is no supplement to the percentage for shrinking.
If the maximum pause time goal is not being met, then the size of only one generation is shrunk at a time. If the pause times of both generations are above the goal, then the size of the generation with the larger pause time is shrunk first.
If the throughput goal is not being met, the sizes of both generations are increased. Each is increased in proportion to its respective contribution to the total garbage collection time. For example, if the garbage collection time of the young generation is 25% of the total collection time and if a full increment of the young generation would be by 20%, then the young generation would be increased by 5%.
Default Heap Size
Unless the initial and maximum heap sizes are specified on the command line, they are calculated based on the amount of memory on the machine.
Client JVM Default Initial and Maximum Heap Sizes
The default maximum heap size is half of the physical memory up to a physical memory size of 192 megabytes (MB) and otherwise one fourth of the physical memory up to a physical memory size of 1 gigabyte (GB).
For example, if your computer has 128 MB of physical memory, then the maximum heap size is 64 MB, and greater than or equal to 1 GB of physical memory results in a maximum heap size of 256 MB.
The maximum heap size is not actually used by the JVM unless your program creates enough objects to require it. A much smaller amount, called the initial heap size, is allocated during JVM initialization. This amount is at least 8 MB and otherwise 1/64th of physical memory up to a physical memory size of 1 GB.
The maximum amount of space allocated to the young generation is one third of the total heap size.
Server JVM Default Initial and Maximum Heap Sizes
The default initial and maximum heap sizes work similarly on the server JVM as it does on the client JVM, except that the default values can go higher. On 32-bit JVMs, the default maximum heap size can be up to 1 GB if there is 4 GB or more of physical memory. On 64-bit JVMs, the default maximum heap size can be up to 32 GB if there is 128 GB or more of physical memory. You can always set a higher or lower initial and maximum heap by specifying those values directly; see the next section.
Specifying Initial and Maximum Heap Sizes
You can specify the initial and maximum heap sizes using the flags -Xms (initial heap size) and -Xmx (maximum heap size). If you know how much heap your application needs to work well, you can set -Xms and -Xmx to the same value. If not, the JVM will start by using the initial heap size and will then grow the Java heap until it finds a balance between heap usage and performance.
Other parameters and options can affect these defaults. To verify your default values, use the -XX:+PrintFlagsFinal option and look for MaxHeapSize in the output. For example, on Linux or Solaris, you can run the following:
java -XX:+PrintFlagsFinal -version | grep MaxHeapSize
Excessive GC Time and OutOfMemoryError
The parallel collector throws an OutOfMemoryError if too much time is being spent in garbage collection (GC): If more than 98% of the total time is spent in garbage collection and less than 2% of the heap is recovered, then an OutOfMemoryError is thrown. This feature is designed to prevent applications from running for an extended period of time while making little or no progress because the heap is too small. If necessary, this feature can be disabled by adding the option -XX:-UseGCOverheadLimit to the command line.
Measurements
The verbose garbage collector output from the parallel collector is essentially the same as that from the serial collector.