I got pretty the same... but still playing on overclocked Q6600 (first Intel Quad core bought in 2009) ... this is pretty annoying, as all other games are working perfectly fine. Even Star Wars Battlefront 2 (on the same game engine!). But there are few things you actually can try to do (helped me):
Among others (the most important):
1. Disable rendering ahead (RenderDevice.RenderAheadLimit 0)
2. Disable vertical sync in game options
3. Set max fps to 59 (gametime.maxvariablefps 59)
4. Go to your graphic card settings and set physics calculations to GPU
Generally to make it all happen (not counting last step) automatically, you need to create user.cfg file in Battlefield 1 directory and write commands in there... My whole config looks like this:
PerfOverlay.DrawFps 1
RenderDevice.Force
RenderDevice.RenderAheadLimit 0
RenderDevice.TripleBufferingEnable 1
RenderDevice.VsyncEnable 0
PostProcess.DynamicAOEnable 0
WorldRender.MotionBlurEnable 0
WorldRender.MotionBlurForceOn 0
WorldRender.MotionBlurFixedShutterTime 0
WorldRender.MotionBlurMax 0
WorldRender.MotionBlurQuality 0
WorldRender.MotionBlurMaxSampleCount 0
WorldRender.SpotLightShadowmapEnable 0
WorldRender.SpotLightShadowmapResolution 128
WorldRender.TransparencyShadowmapsEnable 0
WorldRender.LightTileCsPathEnable 0
RenderDevice.Dx11Enable 1
RenderDevice.Dx11Dot1Enable 1
RenderDevice.Dx11Dot1RuntimeEnable 1
Thread.MaxProcessorCount 8
Render.DrawScreenInfo 0
GameTime.MaxVariableFPS 59
Gained about 15fps that way on my rig.
The second thing is audio... don't use more channels than Stereo (set it on your audio card and in game)... 7.1 audio comparing to 2.0 audio in my case is about 10fps difference on Asus Xonar DX2. Set up sampling rate (if your drivers allow it) to 96khz instead of 192. Another few fps more.