v2 is already performing incredibly well, but the following places are candidates for optimisation.
AbstractBlockView#isBlockOccluding - 82% of RaycastUtil#raycast is from this method. RaESP can currently do 1000 recasts in ~ 0.5ms, but chunk section occlusion would benefit from increasing this number. The ConcurrentHashMap lookup would need to be replaced, maybe with fastutil?
AbstractBlockView#getNeedingRecheck - Relatively expensive iteration of a ConcurrentHashMap, not sure if it is possible to optimise this at all.
PacketEventsBlockViewController#ingestChunkAndSetTileEntitiesToHiddenBlocks - This is by far the least performant method currently, however unfortunately the bottleneck is in PacketEvent's Chunk_v1_18#getBlockID, which I doubt can be optimised from our side.
v2 is already performing incredibly well, but the following places are candidates for optimisation.
AbstractBlockView#isBlockOccluding- 82% ofRaycastUtil#raycastis from this method. RaESP can currently do 1000 recasts in ~ 0.5ms, but chunk section occlusion would benefit from increasing this number. The ConcurrentHashMap lookup would need to be replaced, maybe with fastutil?AbstractBlockView#getNeedingRecheck- Relatively expensive iteration of a ConcurrentHashMap, not sure if it is possible to optimise this at all.PacketEventsBlockViewController#ingestChunkAndSetTileEntitiesToHiddenBlocks- This is by far the least performant method currently, however unfortunately the bottleneck is in PacketEvent'sChunk_v1_18#getBlockID, which I doubt can be optimised from our side.