-
Bug
-
Resolution: Unresolved
-
None
-
1.17.40.23 Beta, 1.17.40.21 Beta, 1.17.20.22 Beta, 1.17.10, 1.17.30, 1.17.32, 1.20.60.25 Preview, 1.20.60.24 Preview, 1.20.51 Hotfix
-
Plausible
-
Windows
-
577097
The bug
Moderately large amounts of marker entities cripple bedrock edition, even on the most powerful devices. The framerate tanks and the server screeches to a halt.
How to reproduce
1. Download and open the attached world.
2. Press the button repeatedly. Each time you do, the number of marker entities is doubled.
3. Repeat until the game becomes unplayable due to lag. For me, this happens around 2048 entities.
4. Compare to the java world, in which I can spawn over 130,000 marker entities before the server starts to slow down, and the client remains at a smooth 60 frames per second.
Notes
The Bedrock marker entity is defined in a behavior pack. It has no components, and no client entity definition. Therefore it really should not be costing any time on the client or server. If for some reason you actually need to add components to disable performance-costing features, please let me know so this test can be made more fair.
Here is a table comparison of the results I get:
(any number of entities below 32 results in differences too small to measure)
Bedrock Marker | Java Marker | Java Area Effect Cloud | |
---|---|---|---|
32 entities | ![]() ![]() |
![]() ![]() |
![]() ![]() |
64 entities | ![]() ![]() |
![]() ![]() |
![]() ![]() |
128 entities | ![]() ![]() |
![]() ![]() |
![]() ![]() |
256 entities | ![]() ![]() |
![]() ![]() |
![]() ![]() |
512 entities | ![]() ![]() |
![]() ![]() |
![]() ![]() |
1024 entities | ![]() ![]() |
![]() ![]() |
![]() ![]() |
2048 entities | ![]() ![]() |
![]() ![]() |
![]() ![]() |
4096 entities | ![]() |
![]() ![]() |
![]() ![]() |
8192 entities | ![]() |
![]() ![]() |
![]() ![]() |
16384 entities | ![]() |
![]() ![]() |
![]() ![]() |
32768 entities | ![]() |
![]() ![]() |
![]() ![]() |
65536 entities | ![]() |
![]() ![]() |
![]() |
131072 entities | ![]() |
![]() ![]() |
![]() |
Note that every additional row is an order of magnitude more entities than the previous row, so Bedrock is considerably more laggy than it should be; the amount of entities that makes Bedrock unplayable is completely unnoticeable on Java, even on the same exact machine!
Compared to Java AECs, Bedrock markers are nearly 30 times laggier on the server, and 16 times laggier on the client!
Compared to Java markers, Bedrock markers fare even worse, with Bedrock being 64 times laggier on the server, and lagging the client even though Java markers don't lag the client at all!
This greatly affects mapmaking, in which marker entities are used frequently in both editions, and are only performant in java. Performance is especially critical on bedrock, since weak devices make up a plurality of the audience.