Coder Social home page Coder Social logo

Potential memory leak about splinter HOT 4 OPEN

atsiflis avatar atsiflis commented on August 12, 2024
Potential memory leak

from splinter.

Comments (4)

gablank avatar gablank commented on August 12, 2024

Hello @atsiflis!

We're happy the library has been useful to you :-)

I agree that it may seem like a memory leak. As far as I know (and remember), the evaluation of a spline should not result in any allocation of memory (that is not also freed before returning), except for the data structure to hold the result. However, the Python interface makes reasoning about this a bit harder, as it uses a garbage collector which may run at (seemingly) random times.

Ideally, the memory usage of this should converge to some constant:

while True:
    y = bspline.eval(x)

I would have to have a more thorough look to determine if this is actually a memory leak, or if this is just Python playing us a trick.

Thank you for the report and the example, it will be very useful for debugging purposes!

from splinter.

yj-Roy avatar yj-Roy commented on August 12, 2024

I also meet the same problem.
My dataset is large,it will occupy all the memory of my computer, and report an error.
I still have a problem and do not know how to solve it. I use python, if I use for loop + splinter, its time cost is mainly in a large number of for loops, it will take more time than scipy( because scipy uses matrix processing), how to solve this problem, thanks

from splinter.

yj-Roy avatar yj-Roy commented on August 12, 2024

I can't solve this problem, but I think I can alleviate it.
The cinterface.h file contains a function SPLINTER_API void splinter_datatable_delete(splinter_obj_ptr datatable_ptr);
But this function is not used in codes, So in the datatable.py I add this function:

def __del__(self):
    if self.__handle is not None:
        splinter._call(splinter._get_handle().splinter_datatable_delete, self.__handle)
    self.__handle = None

After that, still have a memory leak problem, but the leak speed is very slow.
Thanks

from splinter.

bgrimstad avatar bgrimstad commented on August 12, 2024

Hi, @yj-Roy. Good catch! I have not investigated this problem, but it seems reasonable to implement the del method for all the Python classes (not only DataTable) to prevent memory leakage. It would be great if you could prepare and submit a pull request so that we can fix the problem for all users.

Bjarne

from splinter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.