Code Monkey home page Code Monkey logo

Comments (8)

LimesKey avatar LimesKey commented on June 8, 2024

I tried running the program in Github Codespaces on a 64GB RAM machine but launching the program headless did not work and gave a 'could not find X11 display' error.

from freerouting.

Djzhan0207 avatar Djzhan0207 commented on June 8, 2024

I run this on my windows and mem break too. According to my recent study, when FR can't extend a route, the mem will increase immediately, it relates to its queue data structure.For now, it can't be fixed, you can try another auto-router such as electra.

from freerouting.

andrasfuchs avatar andrasfuchs commented on June 8, 2024

I can confirm that this is an issue, thank you @LimesKey for the DSN file.

Here is the profiler's report during my recent session that consumed 8GB of RAM in a matter of minutes:
image

from freerouting.

andrasfuchs avatar andrasfuchs commented on June 8, 2024

I implemented a HashMap-based caching mechanism for some key planar classes to significantly reduce the new object creation count, but it made the algorithm less CPU-efficient because of the thread-safe hash lookups.

image

I will discard these changes, because the memory need didn't decrease significantly in the end.

I think there must be a separate routing issue as well related to your board, that needs further investigation.

from freerouting.

LimesKey avatar LimesKey commented on June 8, 2024

Is the bug/issue consider a memory leak or just it working but using up more RAM than intended? I can try it in a Github Codespace with 64GB of RAM if I can solve the headless issue.

I tried Electra last night, and while it was super fast and worked, it conflicted with my graphic on my front copper layer. This is turning into less of a freerouting issues/question, but do you think I would require a third layer because of the complexity of the board? And does anyone know how to prevent the copper graphic from conflciting with the auto routing traces?

from freerouting.

andrasfuchs avatar andrasfuchs commented on June 8, 2024

I think the algorithm gets into to a loop incorrectly that uses up as much memory as it can over time, so in that sense it's a memory leak. It's not dangerous or harmful in any way, it's just that it would probably never finish.

I suspect that it is connected to the fact that your board edge is more complex than other boards, but I might be wrong about that. If you have time you can try to test it with a simple rectangular edge.

I can't help you with Electra unfortunately.

from freerouting.

L1uTongweiNewAccount avatar L1uTongweiNewAccount commented on June 8, 2024

In fact, I also met this in some of my projects when my RAM is 32GiB and it was NOT full.

Maybe this is infinty recursion or loop made a stack overflow?

I don't know how it works, but I know some silly bug can make this. I found a repetition in my new issue #299.

Although it will not lead the program to crash, but i think it can rellect some issues.

from freerouting.

L1uTongweiNewAccount avatar L1uTongweiNewAccount commented on June 8, 2024

@andrasfuchs i think this issue is just the bigger issue of #299, and i think if we have more time, we will get the same crash in it.

So to reserch #299, maybe we can fix the bug of memory leak, slow and... anyway!

from freerouting.

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.