Hi, I’m trying to use the bokeh server according to the section “Connecting with bokeh.client” on the user guide page (very helpful, by the way). I’ve noticed a memory leak in my code, but it is also present in the example code.
I first run “bokeh serve” in a separate command window and then run the first example in that section (ending with “session.loop_until_closed() # run forever”). Monitoring the process, I can see that it consumes 100-200K more memory per second. This is a real bottleneck since I’d like to leave this application running indefinitely.
The issue seems to be with this line;
r2.data_source.data[“y”] = y * step
In my code, I’ve found that when I make this update with anything but a static list I get the leak. For example, if I run;
r2.data_source.data[“y”] = [0]*npts # ← OK
r2.data_source.data[“y”] = [x for x in range(npts)] # ← OK
r2.data_source.data[“y”] = data # ← NOT OK
r2.data_source.data[“y”] = copy.deepcopy(data) # ← NOT OK
I’m on Win7 with bokeh 0.12.6 under anaconda. Here’s the output of bokeh info:
Python version : 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]
IPython version : 5.3.0
Bokeh version : 0.12.6
BokehJS static path : c:\users\efield\anaconda3\lib\site-packages\bokeh\server\static
node.js version : (not installed)
npm version : (not installed)
As a side note: I know this method is frowned upon, but I think it works well for me. Of course, I’m open to alternatives. I can discuss more about my use case, but that’s secondary to this issue here (since it arises with the boilerplate demo code).