标签: memory-consumption

4
推荐指数
1
解决办法
3603
查看次数

file_get_contents()使用的内存在未分配给变量时是否会被释放?

当我使用file_get_contents并将其作为参数传递给另一个函数而不将其分配给变量时,是否在脚本执行完成之前释放了该内存?

例如:

preg_match($pattern, file_get_contents('http://domain.tld/path/to/file.ext'), $matches);
Run Code Online (Sandbox Code Playgroud)

file_get_contents使用的内存是否会在脚本完成之前释放?

php memory-consumption

3
推荐指数
1
解决办法
4784
查看次数

Linux进程内存消耗,以字节为单位(不是Kbytes)

在Linux中有任何方法可以检查在字节上测量的进程内存(例如,使用top或ps).不是以千字节为单位,而是字节数.

提前致谢!

linux process memory-consumption

3
推荐指数
1
解决办法
5418
查看次数

简单的Java程序越来越消耗内存

我有这个简单的Java代码,它创建一个JFrame实例并显示它.此链接包含jconsole采用的内存消耗图表的屏幕截图

在此输入图像描述

令我担心的是,任务管理器中的java.exe显示内存使用率以每8-9秒4-5 kbs的速率不断增加.需要帮忙

import javax.swing.*;

class MyGUI extends JFrame
{
    public void makeGUI()
    {
        setLayout(null);
        setSize(500, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
}

public class Launcher
{
    public static void main(String []args)
    {
        SwingUtilities.invokeLater(new Runnable()
                    {
                       public void run()
                       {
                        new MyGUI().makeGUI();
                       }
                    });
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing memory-consumption memory-efficient

3
推荐指数
1
解决办法
1368
查看次数

为什么这段代码不能在恒定的内存中运行?

我正在使用Data.Text.Lazy处理一些文本文件.我读了2个文件,并根据一些标准将文本分发到3个文件.执行处理的循环是go'.我已经设计了它应该以递增方式处理文件并且在内存中保持不变的方式.但是,一旦执行到达该go'部分,内存就会持续增加,直到最后达到大约90MB,从2MB开始.

有人可以解释为什么这种记忆增加发生以及如何避免它?

import qualified Data.Text.Lazy as T
import qualified Data.Text.Lazy.IO as TI
import System.IO
import System.Environment
import Control.Monad

main = do
  [in_en, in_ar] <- getArgs
  [h_en, h_ar] <- mapM (`openFile` ReadMode) [in_en, in_ar]
  hSetEncoding h_en utf8
  en_txt <- TI.hGetContents h_en
  let len = length $ T.lines en_txt
  len `seq` hClose h_en
  h_en <- openFile in_en ReadMode
  hs@[hO_lm, hO_en, hO_ar] <- mapM (`openFile` WriteMode) ["lm.txt", "tun_"++in_en, "tun_"++in_ar]
  mapM_ (`hSetEncoding` utf8) [h_en, h_ar, hO_lm, hO_en, hO_ar] …
Run Code Online (Sandbox Code Playgroud)

text haskell file-processing memory-consumption

3
推荐指数
1
解决办法
219
查看次数

如何实现低内存消耗?

我想知道防病毒程序使用哪种技术来扫描磁盘或文件并保持低内存消耗.它们也不会影响用户活动.

我正在寻找一种方法,通过它我们可以实现低内存消耗的磁盘扫描.

low-memory memory-consumption

2
推荐指数
1
解决办法
654
查看次数

单字符字符串列表比多字符字符串的内存分配率更高

请考虑以下的基准,其分配ListString与长度为8的长度为1的

@State(Scope.Benchmark)
@BenchmarkMode(Array(Mode.Throughput))
class SoMemory {
  val size = 1_000_000
  @Benchmark def a: List[String] = List.fill[String](size)(Random.nextString(1))
  @Benchmark def b: List[String] = List.fill[String](size)(Random.nextString(8))
}
Run Code Online (Sandbox Code Playgroud)

哪里sbt "jmh:run -i 10 -wi 10 -f 2 -t 1 -prof gc bench.SoMemory"

[info] Benchmark                                     Mode  Cnt           Score          Error   Units
[info] SoMemory.a                                   thrpt   20          16.650 ±        0.519   ops/s
[info] SoMemory.a:·gc.alloc.rate                    thrpt   20        3870.364 ±      120.687  MB/sec
[info] SoMemory.a:·gc.alloc.rate.norm               thrpt   20   255963282.822 ±       61.012    B/op
[info] SoMemory.a:·gc.churn.PS_Eden_Space           thrpt   20        3862.090 ±      161.598 …
Run Code Online (Sandbox Code Playgroud)

string scala list memory-consumption scala-collections

1
推荐指数
1
解决办法
92
查看次数

在 C# 中获取文件夹中的文件名的更便宜的方法是什么?

我正在尝试找到一种消耗更少内存的方法来从文件夹中获取文件名。

我尝试了这两种方法(都有效),但不知道哪个更便宜:

        string[] files;

        //method 1
        files = new DirectoryInfo(root)
            .GetFiles()
            .Select(f => f.Name).ToArray();

        //method 2
        files = Directory.GetFiles(root);
        for (int i = 0; i < files.Length; i++)
            files[i] = Path.GetFileName(files[i]);
Run Code Online (Sandbox Code Playgroud)

c# memory-consumption

0
推荐指数
1
解决办法
119
查看次数

使用Int64的haskell中的内存消耗

问题是找到最后一个元素.它运行良好整数类型.使用Int类型溢出,但是当我尝试Int64时,似乎垃圾收集器停止工作.

module Main (main) where
import Data.Int
import System.Environment

getNum :: Int -> Int64

merge [] s2 = s2
merge s1 [] = s1
merge (s1:s1s) (s2:s2s)
      | s1 < s2 = s1 : (merge s1s (s2:s2s))
      | s1 > s2 = s2 : (merge (s1:s1s) s2s)
      | otherwise = s1 : (merge s1s s2s)

scaleStreams scale = map $ (*) scale       

getNum n = s_3_56!!n
    where s_3_56 = 1:(merge (scaleStreams 2 s_3_56)
                     (merge (scaleStreams 3 s_3_56)
                     (scaleStreams 5 s_3_56 …
Run Code Online (Sandbox Code Playgroud)

64-bit haskell memory-consumption

-1
推荐指数
1
解决办法
508
查看次数