public ResourceProfile getTaskResourceProfile() { int userHeap = taskResourceProfile.getHeapMemoryInMB(); if (taskManagerTotalMemoryMB > 0) { if (offHeap) { userHeap = getTotalHeapMemory() - taskManagerHeapMemorySizeMB; } else { userHeap = getTotalHeapMemory() - taskManagerHeapMemorySizeMB - getManagedMemorySize() - getFloatingManagedMemorySize(); } } return new ResourceProfile(taskResourceProfile.getCpuCores(), userHeap, taskResourceProfile.getDirectMemoryInMB(), taskResourceProfile.getNativeMemoryInMB(), taskResourceProfile.getNetworkMemoryInMB(), taskResourceProfile.getExtendedResources()); }