I have been having the same issue since the season 3 update and it took me about 4 weeks to figure out a way to get the game to a playable state. Setting your shader cache to unlimited in the Nvidea control panel and freeing up at least 3 processing cores.
first download Process Lasso
To free up processing cores for Steam or the EA App in Process Lasso, you can assign a persistent CPU Affinity rule. This restricts these apps to specific cores, freeing up others for your game to process server data without interruption.
How to Free Up the Last 3 Cores
Open Process Lasso: Ensure Steam, the EA App, and Process Lasso are all running.
Locate the Launcher: Go to the Active Processes tab and find steam.exe or EADesktop.exe.
Navigate to Always Affinity: Right-click the process, hover over CPU Affinity, select Always, and click Select CPU(s)....
Uncheck the Last 3 Cores: Look at the bottom of the core list. If you see numbered CPU cores or threads, scroll to the very end. Uncheck the last 3 physical cores (or the last 6 logical threads if hyperthreading is on).
Save the Rule: Click OK to apply. Process Lasso will now permanently restrict the launcher from touching those final 3 cores, keeping them wide open for your connection data.
Also create a config file using note pad. follow the instructions below:
To restrict Battlefield 6 to a specific number of cores and logical threads using a config file, you must create a script named user.cfg and place it in the game's root directory. This overrides the Frostbite engine's default behavior, keeping your CPU from hitting 100% load and leaving dedicated physical space for your connection data. [1, 2, 3, 4, 5]
Since you are freeing up the last 3 cores via Process Lasso, you need to calculate your target numbers by subtracting 3 cores (and 6 logical processors/threads) from your total hardware specifications.
Step 1: Find Your Hardware Baseline
Press Ctrl + Shift + Esc to open Task Manager.
Click the Performance tab and select CPU.
Look at the bottom right to find your exact number of Cores and Logical processors.
To ensure Battlefield 6 leaves the final 3 cores empty to mirror your launcher setup, subtract them from your Task Manager totals:
Target Cores: Your Total Cores minus 3.
Target Threads: Your Total Logical Processors minus 6.
(Example: If you have an 8-Core / 16-Thread CPU, your restricted target numbers will be 5 cores and 10 threads).
Step 3: Create and Save the user.cfg File
Open Notepad on your desktop.
Copy and paste the following commands exactly into the blank text document:
paste into notepad
Thread.ProcessorCount your target cores
Thread.MaxProcessorCount - YOUR TARGET CORES
Thread.MinFreeProcessorCount 0
Thread.JobThreadPriority 0
GstRender.Thread.MaxProcessorCount YOUR_TARGET_THREADS
and save it as all file types and paste it into the games launch folder that hold Battlefield.exe
its a lot but i found it worked for me. maybe try the process lasso first then the config file.
Good Luck