当前位置: 首页 > 知识库问答 >
问题:

内存泄漏会导致getaddrinfo EMFILE吗

葛承嗣
2023-03-14

我有一些fs.readfilesyncfs.readdirsync等,但是我没有设置autoclose:true。你觉得会是那样吗?

你有什么想法或建议吗?

PS:该应用程序在Ubuntu机器上运行

...
nodejs    27596   root  631u  IPv4 109781565      0t0  TCP 127.0.0.1:45268->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  632u  IPv4 109782317      0t0  TCP 172.31.58.93:4242->172.31.55.229:61616 (ESTABLISHED)
nodejs    27596   root  633u  IPv4 109779882      0t0  TCP 127.0.0.1:45174->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  634u  IPv4 109779884      0t0  TCP 127.0.0.1:45175->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  635u  IPv4 109781569      0t0  TCP 127.0.0.1:45269->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  636u  IPv4 109781571      0t0  TCP 127.0.0.1:45270->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  637u  IPv4 109782319      0t0  TCP 127.0.0.1:45293->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  642u  IPv4 109781790      0t0  TCP 127.0.0.1:45283->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  643u  IPv4 109781794      0t0  TCP 127.0.0.1:45284->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  644u  IPv4 109781796      0t0  TCP 127.0.0.1:45285->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  645u  IPv4 109781798      0t0  TCP 172.31.58.93:4242->172.31.55.229:61602 (ESTABLISHED)
nodejs    27596   root  646u  IPv4 109781800      0t0  TCP 127.0.0.1:45286->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  647u  IPv4 109781802      0t0  TCP 172.31.58.93:4242->172.31.0.198:1527 (ESTABLISHED)
nodejs    27596   root  648u  IPv4 109781804      0t0  TCP 127.0.0.1:45287->127.0.0.1:7272 (ESTABLISHED)
nodejs    27596   root  649u  IPv4 109781806      0t0  TCP 127.0.0.1:45288->127.0.0.1:7272 (ESTABLISHED)

多谢.

共有1个答案

柴文林
2023-03-14

所以我以为我发现是怎么回事了!

我使用Redis和Redis session npm模块作为购物车存储,但是当我创建和更新时,我每次都在使用它之前创建了一个到Redis的连接。

var session = new Sessions({ port : conf.redisPort, host : conf.redisHost});

session.get({
    app :    rsapp,
    token :  this.sessionToken },
    function(err, resp) {
        // here some workin'
    })

现在,我只是在应用程序启动时创建了连接,并将其存储为一个单例,随时使用。

// At the start of the App
    var NS = {
        sessions        : new RedisSessions({port: config.redisPort, host: config.redisHost}),
    };

// Later somewhere in the app        
    NS.session.get({
        app :    rsapp,
        token :  this.sessionToken },
        function(err, resp) {
            // here some workin'
        })
 类似资料:
  • 我想首先说,这是我第一次必须处理性能,因为这是我第一次开发一个android应用程序。 该应用程序是一个源代码编辑器,在这里你可以打开文件,修改它们,并将它们保存回来。该应用程序由4个部分组成: 导航器视图:包含打开文件的ListView和打开文件夹的TreeView。 代码视图容器:它保存包含实际代码的视图。 代码容器:这是一个小视图,包含一个文本视图和一个自定义EditText(由我扩展Edi

  • 我正在玩rxjava,发现如果在活动被销毁之前没有完成订阅,则存在内存泄漏的风险,因为“可观察对象保留对上下文的引用”。如果订阅没有取消订阅,则此类情况的演示之一如下所示。已销毁(来源:https://github.com/dlew/android-subscription-leaks/blob/master/app/src/main/java/net/danlew/rxsubscriptions

  • 问题内容: 我正在编写一个测试程序,如下所示: 当用户单击按钮A时,它将打开50个JFrame。 当用户单击按钮B时,它将放置所有通过单击按钮A显示的JFrame。 我发现单击按钮B后内存不会减少。我使用任务管理器(在Windows中为+ + ,并检查“ java”的内存使用情况)确定了这一点。 问题答案: 是的,没有办法,无法解决(不仅在Java PL中), 1)实际上,不要在运行时/运行时创建

  • 问题内容: 我认为我的Android动态壁纸存在内存泄漏。每当我旋转屏幕时,收集的内存垃圾量就会增加50kb,并且不会减少。我认为这可能是由预定的将来引起的,因此我将提出一个方案以查看是否是这种情况。 假设您有一个包含以下成员的类(我们称其为Foo)。 现在您设定了预定的未来 Future拥有对可运行对象的引用,而Runnable拥有对父Foo对象的引用。我不确定是否是这种情况,但是这个事实是否意

  • 如果我有一个垃圾收集器来跟踪分配的每个对象,并在它们不再有对它们的可用引用时立即释放它们,你还会有内存泄漏吗? 考虑到内存泄漏是指没有任何引用的分配,这不是不可能的吗?还是我遗漏了什么? 编辑:所以我认为内存泄漏是您在代码中不再引用的分配。您仍然可以引用的大量累积分配不是我在这里考虑的泄漏。 我也只是在谈论普通的G.C.,已经有一段时间了,但我知道像循环引用这样的案例不会把他们绊倒。我不需要任何语

  • 问题内容: 我正在运行django应用程序,其中包括matplotlib,并允许用户指定图形的轴。这可能会导致 “溢出错误:超出了Agg复杂度” 发生这种情况时,最多会占用100MB的RAM。通常,我会使用,和释放该内存,但是与该错误关联的内存似乎与该绘图对象无关。 有谁知道我该如何释放记忆? 谢谢。 这是一些给我Agg复杂度错误的代码。 问题答案: 我假设您可以至少运行一次您发布的代码。该问题仅