精华内容
下载资源
问答
  • 在台式电脑上安装2个内存条,之前是4G的后来加安装了8G内存,本应该有12G但是在电脑上却显示只有3.45G内存为可用, 以下是处理方式: 1、确定两条内存都是可以用 2、在cmd 中输入msconfig 点击enter就可以入系统...

    在台式电脑上安装2个内存条,之前是4G的后来加安装了8G内存,本应该有12G但是在电脑上却显示只有3.45G内存为可用,

    以下是处理方式:

    1、确定两条内存都是可以用

    2、在cmd 中输入msconfig 点击enter就可以入系统配置


    然后点击引导 选择高级选项


    勾选最大内存底下的数据可以自己设置


    重启电脑。



    展开全文
  • 如图,我的电脑有两个内存条一共4g内存,但是任务管理器显示,只有1.6g可用,我的系统是win864位的,华硕笔记本参数如图2,有那位同仁解决过此类问题啊?![图片]...
  • 楼主买了个1核1G的云服务器,准备搭建一个私服用一用,谁知竟然启动报错。 查看运行状态 说的很清楚,说我的内存不足。 ubuntu@10-9-17-59:~/Develop/Nexus/nexus-3.15.2-01/bin$ ./nexus status Java HotSpot(TM) ...

    解决Nexus3.xx版本的内存问题

    楼主买了个1核1G的云服务器,准备搭建一个私服用一用,谁知竟然启动报错。

    查看运行状态
    说的很清楚,说我的内存不足。

    ubuntu@10-9-17-59:~/Develop/Nexus/nexus-3.15.2-01/bin$ ./nexus status
    Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f046d000000, 2555904, 1) failed; error='Cannot allocate memory' (errno=12)
    #
    # There is insufficient memory for the Java Runtime Environment to continue.
    # Native memory allocation (mmap) failed to map 2555904 bytes for committing reserved memory.
    # An error report file with more information is saved as:
    # /home/ubuntu/Develop/Nexus/nexus-3.15.2-01/hs_err_pid1819.log
    

    一、解决办法

    1.查看怎么修改

    修改Nexus 的内存配置

    Nexus官方给出的修改方案

    修改运行内存

    2.找到目标文件

    ubuntu@10-9-17-59:~/Develop/Nexus/nexus-3.15.2-01/bin$ ls
    contrib  nexus  nexus.rc  nexus.vmoptions
    ubuntu@10-9-17-59:~/Develop/Nexus/nexus-3.15.2-01/bin$ 
    

    目标文件

    3.编辑它

    -Xms128M
    -Xmx128M
    -XX:MaxDirectMemorySize=256M
    

    在这里插入图片描述

    4.启动

    经过测试1核1G是启动成功不了的,纵使修改了,也没办法,必须得2G内存。

    报错:

    2019-04-03 16:45:53,865+0800 WARN  [jetty-main-1] *SYSTEM org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext@56eef120{Sonatype Nexus,/,file:///home/ubuntu/Develop/Nexus/nexus-3.15.2-01/public/,UNAVAILABLE}
    java.lang.OutOfMemoryError: Java heap space
    	at org.apache.felix.resolver.util.CandidateSelector.copy(CandidateSelector.java:45)
    	at org.apache.felix.resolver.util.OpenHashMapList.deepClone(OpenHashMapList.java:39)
    	at org.apache.felix.resolver.Candidates.copy(Candidates.java:1143)
    	at org.apache.felix.resolver.Candidates.permutate(Candidates.java:1196)
    	at org.apache.felix.resolver.ResolverImpl$ResolveSession.permutateIfNeeded(ResolverImpl.java:134)
    	at org.apache.felix.resolver.Candidates.checkSubstitutes(Candidates.java:344)
    	at org.apache.felix.resolver.ResolverImpl.checkConsistency(ResolverImpl.java:562)
    	at org.apache.felix.resolver.ResolverImpl.findValidCandidates(ResolverImpl.java:530)
    	at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:393)
    	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:375)
    	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:368)
    	at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:216)
    	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:263)
    	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1176)
    	at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:1074)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)
    
    

    2核2G完美运行

    在这里插入图片描述

    访问它:

    在这里插入图片描述

    展开全文
  • docker内存上为10G

    2020-09-03 18:14:26
    扩充后使用#docker stats 命令查看,发现内存由8G升为9.75G,不管调节多少内存上限都是9.75,不知哪里的问题 9.7以下的内存,随便调配,都是实时生效,也可以用#docker stats 命令查看,求大神指点,到底是哪里问题...
  • Java内存映射,上G大文件轻松处理

    千次阅读 多人点赞 2019-08-14 16:12:12
    内存映射文件(Memory-mapped File),指的是将一段虚拟内存逐字节映射于一个文件,使得应用程序处理文件如同访问主内存(但在真正使用到这些数据前却不会消耗物理内存,也不会有读写磁盘的操作),这要比直接文件读写...

    内存映射文件(Memory-mapped File),指的是将一段虚拟内存逐字节映射于一个文件,使得应用程序处理文件如同访问主内存(但在真正使用到这些数据前却不会消耗物理内存,也不会有读写磁盘的操作),这要比直接文件读写快几个数量级。

    稍微解释一下虚拟内存(很明显,不是物理内存),它是计算机系统内存管理的一种技术。像施了妖法一样使得应用程序认为它拥有连续的可用的内存,实际上呢,它通常是被分隔成多个物理内存的碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

    内存映射文件主要的用处是增加 I/O 性能,特别是针对大文件。对于小文件,内存映射文件反而会导致碎片空间的浪费,因为内存映射总是要对齐页边界,最小单位是 4 KiB,一个 5 KiB 的文件将会映射占用 8 KiB 内存,也就会浪费 3 KiB 内存。

    java.nio 包使得内存映射变得非常简单,其中的核心类叫做 MappedByteBuffer,字面意思为映射的字节缓冲区。

    01、使用 MappedByteBuffer 读取文件

    假设现在有一个文件,名叫 cmower.txt,里面的内容是:

    沉默王二,一个有趣的程序员

    PS:哎,改不了王婆卖瓜自卖自夸这个臭毛病了,因为文章被盗得都怕了。

    这个文件放在 /resource 目录下,我们可以通过下面的方法获取到它:

    ClassLoader classLoader = Cmower.class.getClassLoader();
    Path path = Paths.get(classLoader.getResource("cmower.txt").getPath());
    

    Path 既可以表示一个目录,也可以表示一个文件,就像 File 那样——当然了,Path 是用来取代 File 的。

    然后,从文件中获取一个 channel(通道,对磁盘文件的一种抽象)。

    FileChannel fileChannel = FileChannel.open(path);
    

    紧接着,调用 FileChannel 类的 map 方法从 channel 中获取 MappedByteBuffer,此类扩展了 ByteBuffer——提供了一些内存映射文件的基本操作方法。

    MappedByteBuffer mappedByteBuffer = fileChannel.map(mode, position, size);
    

    稍微解释一下 map 方法的三个参数。

    1)mode 为文件映射模式,分为三种:

    • MapMode.READ_ONLY(只读),任何试图修改缓冲区的操作将导致抛出 ReadOnlyBufferException 异常。

    • MapMode.READ_WRITE(读/写),任何对缓冲区的更改都会在某个时刻写入文件中。需要注意的是,其他映射同一个文件的程序可能不能立即看到这些修改,多个程序同时进行文件映射的行为依赖于操作系统。

    • MapMode.PRIVATE(私有), 对缓冲区的更改不会被写入到该文件,任何修改对这个缓冲区来说都是私有的。

    2)position 为文件映射时的起始位置。

    3)size 为要映射的区域的大小,必须是非负数,不得大于Integer.MAX_VALUE

    一旦把文件映射到内存缓冲区,我们就可以把里面的数据读入到 CharBuffer 中并打印出来。具体的代码示例如下。

    CharBuffer charBuffer = null;
    ClassLoader classLoader = Cmower.class.getClassLoader();
    Path path = Paths.get(classLoader.getResource("cmower.txt").getPath());
    try (FileChannel fileChannel = FileChannel.open(path)) {
        MappedByteBuffer mappedByteBuffer = fileChannel.map(MapMode.READ_ONLY, 0, fileChannel.size());
        
        if (mappedByteBuffer != null) {
            charBuffer = Charset.forName("UTF-8").decode(mappedByteBuffer);
        }
        
        System.out.println(charBuffer.toString());
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    由于 decode() 方法的参数是 MappedByteBuffer,这就意味着我们是从内存中而不是磁盘中读入的文件内容,所以速度会非常快。

    02、使用 MappedByteBuffer 写入文件

    假设现在要把下面的内容写入到一个文件,名叫 cmower1.txt。

    沉默王二,《Web全栈开发进阶之路》作者

    这个文件还没有创建,计划放在项目的 classpath 目录下。

     Path path = Paths.get("cmower1.txt");
    

    具体位置见下图所示。

    然后,创建文件的通道。

    FileChannel fileChannel = FileChannel.open(path, StandardOpenOption.READ, StandardOpenOption.WRITE,
                    StandardOpenOption.TRUNCATE_EXISTING)
    

    仍然使用的 open 方法,不过增加了 3 个参数,前 2 个很好理解,表示文件可读(READ)、可写(WRITE);第 3 个参数 TRUNCATE_EXISTING 的意思是如果文件已经存在,并且文件已经打开将要进行 WRITE 操作,则其长度被截断为 0。

    紧接着,仍然调用 FileChannel 类的 map 方法从 channel 中获取 MappedByteBuffer。

     MappedByteBuffer mappedByteBuffer = fileChannel.map(MapMode.READ_WRITE, 0, 1024);
    

    这一次,我们把模式调整为 MapMode.READ_WRITE,并且指定文件大小为 1024,即 1KB 的大小。然后使用 MappedByteBuffer 中的 put() 方法将 CharBuffer 的内容保存到文件中。具体的代码示例如下。

    CharBuffer charBuffer = CharBuffer.wrap("沉默王二,《Web全栈开发进阶之路》作者");
    
    Path path = Paths.get("cmower1.txt");
    
    try (FileChannel fileChannel = FileChannel.open(path, StandardOpenOption.READ, StandardOpenOption.WRITE,
            StandardOpenOption.TRUNCATE_EXISTING)) {
        MappedByteBuffer mappedByteBuffer = fileChannel.map(MapMode.READ_WRITE, 0, 1024);
    
        if (mappedByteBuffer != null) {
            mappedByteBuffer.put(Charset.forName("UTF-8").encode(charBuffer));
        }
    
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    可以打开 cmower1.txt 查看一下内容,确认预期的内容有没有写入成功。

    03、MappedByteBuffer 的遗憾

    据说,在 Java 中使用 MappedByteBuffer 是一件非常麻烦并且痛苦的事,主要表现有:

    1)一次 map 的大小最好限制在 1.5G 左右,重复 map 会增加虚拟内存回收和重新分配的压力。也就是说,如果文件大小不确定的话,就不太友好。

    2)虚拟内存由操作系统来决定什么时候刷新到磁盘,这个时间不太容易被程序控制。

    3)MappedByteBuffer 的回收方式比较诡异。

    再次强调,这三种说法都是据说,我暂时能力有限,也不能确定这种说法的准确性,很遗憾。

    04、比较文件操作的处理时间

    嗨,朋友,阅读完以上的内容之后,我想你一定对内存映射文件有了大致的了解。但我相信,如果你是一名负责任的程序员,你一定还想知道:内存映射文件的读取速度究竟有多快。

    为了得出结论,我叫了另外三名竞赛的选手:InputStream(普通输入流)、BufferedInputStream(带缓冲的输入流)、RandomAccessFile(随机访问文件)。

    读取的对象是加勒比海盗4惊涛怪浪.mkv,大小为 1.71G。

    1)普通输入流

    public static void inputStream(Path filename) {
        try (InputStream is = Files.newInputStream(filename)) {
            int c;
            while((c = is.read()) != -1) {
                
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    2)带缓冲的输入流

    public static void bufferedInputStream(Path filename) {
        try (InputStream is = new BufferedInputStream(Files.newInputStream(filename))) {
            int c;
            while((c = is.read()) != -1) {
                
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    3)随机访问文件

    public static void randomAccessFile(Path filename) {
        try (RandomAccessFile randomAccessFile  = new RandomAccessFile(filename.toFile(), "r")) {
            for (long i = 0; i < randomAccessFile.length(); i++) {
                randomAccessFile.seek(i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    4)内存映射文件

    public static void mappedFile(Path filename) {
        try (FileChannel fileChannel = FileChannel.open(filename)) {
            long size = fileChannel.size();
            MappedByteBuffer mappedByteBuffer = fileChannel.map(MapMode.READ_ONLY, 0, size);
            for (int i = 0; i < size; i++) {
                mappedByteBuffer.get(i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    测试程序也很简单,大致如下:

    long start = System.currentTimeMillis();
    bufferedInputStream(Paths.get("jialebi.mkv"));
    long end = System.currentTimeMillis();
    System.out.println(end-start);
    

    四名选手的结果如下表所示。

    方法时间
    普通输入流龟速,没有耐心等出结果
    随机访问文件龟速,没有耐心等下去
    带缓冲的输入流29966
    内存映射文件914

    普通输入流和随机访问文件都慢得要命,真的是龟速,我没有耐心等待出结果;带缓冲的输入流的表现还不错,但相比内存映射文件就逊色多了。由此得出的结论就是:内存映射文件,上G大文件轻松处理

    05、最后

    本篇文章主要介绍了 Java 的内存映射文件,MappedByteBuffer 是其灵魂,读取速度快如火箭。另外,所有这些示例和代码片段都可以在 GitHub 上找到——这是一个 Maven 项目,所以它很容易导入和运行。

    欢迎关注「沉默王二」公众号,后台回复关键字「Java」获取 Java 常用算法手册——成为高手的必备手册。

    扫码关注

    展开全文
  • 很多电脑号称4G内存,其实只有3972M。当装了win7 32位系统时,系统只给2960M内存分配了地址,以1G=1024M计算时,2960M=2.89G。当装了win7 64位系统时,3972M内存全部可用,以1G=1024M计算时,3972M=3.88G

    很多电脑号称4G内存,其实只有3972M。

    当装了win7 32位系统时,系统只给2960M内存分配了地址,以1G=1024M计算时,2960M=2.89G。

    当装了win7 64位系统时,3972M内存全部可用,以1G=1024M计算时,3972M=3.88G。

    展开全文
  • 10G数据,1G内存排序问题

    千次阅读 2019-04-16 15:42:40
    将数据切分成n段,保证每段数据的大小在内存中放得下,然后将n个段的数据放到n个节点上进行并行计算,对计算的结果做多路归并,或者维护一个大小为n的小根堆,第一次从n个数据段中取第一个数据放入堆中,然后拿出...
  • 众所周知,我们的手机使用时间一长,各种后台存储...那么到底有哪些好的方法,才能解决彻底清除手机中无用的缓存,小编在这里分享几个iPhone手机清理内存的大招,只需短短几分钟,帮你手机内存大升级,多出10个G的内...
  • oracle11g自动内存管理

    千次阅读 2012-06-05 23:15:23
    Oracle一直不停的在为Orace数据库的自动化管理努力着,11G中的自动内存管理是Oracle数据库中又一新的里程碑,通过新参数MEMORY_TARGET 来代替PGA和SGA的配置,ORACLE在运行过程中会自动调节PGA和SGA的大小,跟10G中...
  • 解决oracle11g的最大内存占用

    万次阅读 2017-07-08 00:37:03
    个人使用oracle时难免会遇到内存太大,影响到计算机性能,那么可以根据自身需求降低内存的最大占用 打开oracle自带的sqlplus SQL> conn sys/密码 as sysdba 已连接。 SQL> show parameter memoryNAME TYPE ...
  • Win10 64位系统,原来两根4G海力士内存,现在加了一根2G金士顿内存,但是查看到10G内存显示3.92G可用,笔者在多年前也遇到不少这样的问题,由于笔者比较懒,解决后也懒得写博客分享,今天再次遇到同样问题,索性就写...
  • 联想G480 i3 2348M扩展内存

    千次阅读 2014-02-23 15:26:55
    今天把自个的本本加了根4G内存条,发现联想G480 i3 2348M只有一个内存插槽,无奈之下只能把原装的内存条闲置不用(PS:2G的哦!) 具体安装过程可以参考下面的文章 联想G480 i3 2348M扩展内存
  • [img=http://img.my.csdn.net/uploads/201303/30/1364657656_2313.jpg][/img] 笔记本为硬件保留内存1.6G怎么释放?4G内存只有2.4G可用
  • 16G内存显示15.9G可用的解法

    万次阅读 2016-12-12 20:31:00
    技嘉B85主板,I5--4460,独显,16G内存,装完win7 64位系统显示16G内存显示15.9G可用,解法如下 进入BIOS设置中,将集显关闭,内存即可恢复到16G
  • 1G 内存如何优化mysql

    千次阅读 2016-01-13 09:59:32
    同时在线访问量继续增大 对于1G 内存的服务器明显感觉到吃力 严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我  半个多月 MySQL 使用是很具伸缩性的算法,因此你通常能用很少的内存运行或...
  • oracle 11G数据库实例增加内存

    千次阅读 2019-03-01 10:31:45
    后思考,可能是orcl实例的内存资源有限,造成资源跑满,所以进行尝试更改系统内存资源操作。 1、服务器环境 winserver 2012 ;oracle 11G 2、具体更改步骤: 登陆服务器,找到sqlplus----执行如下命令 用户名:...
  • 我的物理内存12G但是查看C盘下的隐藏文件pagefile.sys居然占用10G硬盘空间,hiberfil.sys占用4.75G总共14G多空间白白浪费,考虑到hiberfil.sys是休眠文件,有时候会用到先不管它,面对pagefile.sys这么超大文件是否...
  • 在操作系统Linux环境中,内存是以页Page的方式进行分配,默认大小为4K。如果需要比较大的内存空间,则需要进行频繁的页分配和管理寻址动作。 HugePage是传统4K Page的替代方案。顾名思义,是用HugePage可以让我们...
  • 帮朋友清理电脑时,发现的系统所占容量高达98G,吓我一跳。用这个方法,删了很多cache文件,一下清出了58G的空间(原因是:看视频download的cache文件过多) ......
  • resin版本:resion-pro-4.0.44 ...而且我设置成1g成功resin然后到后台看resin信息,发现上面显示的物理内存好像不对呀。 ![图片说明](https://img-ask.csdn.net/upload/201507/03/1435908733_156967.jpg)
  • 按组合键win+r,调出运行窗口,输入msconfig,选择引导→选中当前的系统→高级选项→取消勾选 然后再次勾选 最大内存→保存确定重启计算机,就可以看到最大内存
  • 内存处理1G或10G大小的log文件

    千次阅读 2018-12-21 18:01:18
    首先我有约100k的小文件s.log,循环 10500次生成大约1G文件test.log。 shell脚本内容如下: touch test.log for((i=0;i;i++)) do  cat s.log >> test.log  echo "www.djlcx.cn" >>test.log done 2、...
  • 32位程序默认情况下最大运行内存为2G,一般情况下1G以上就容易出现异常,1.5G时可能会导致程序崩溃,如果是vs工程,此情况下可尝试修改最大内存地址为4G,修改方式如下: 项目-属性-链接器-系统-启用大地址 ...
  • Java NIO内存映射---上G大文件处理

    万次阅读 多人点赞 2015-09-16 08:43:31
    本文主要讲了java中内存映射的原理及过程,与传统IO进行了对比,最后,用实例说明了结果。
  • Oracle11g新特性之自动内存管理

    千次阅读 2009-10-29 00:07:00
    Auto Memory Management是Oracle10g提出来的一个新特性,在最新的Oracle11g数据库中又得到了进一步的发展。 通过使用自动内存管理,Oracle数据库中的PGA和SGA内存之间可以互相转换,根据当前的工作负载来自动设定...
  • 这是一道挖坑题。内存占用只会比6g多一点,不会用12g。 fork+cow。 评论
  • 修改Oracle 11g 内存参数

    万次阅读 2013-02-28 13:08:23
    [Oracle@bi11g bin]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 1618:39:36 2011   Copyright (c) 1982, 2009, Oracle. All rights reserved.   SQL> conn / as sysdba
  • VMware安装CentOS6.5时,分配的大小为20G,现在需要扩展一个2G的内存空间,并将其挂载到/home/newdisk下。 2、如何增加一块硬盘主要思想 (1)虚拟机添加硬盘 (2)分区 (3)格式化 (4)挂载 (5)设置可以自动...
  • Oracle 11g 的 自动内存管理

    千次阅读 2010-01-14 11:31:00
    Oracle 的 9i/10g 中已经对内存管理逐步做了很大的简化,11g 则更进一步,引入了一个新的概念自动化内存管理(Automatic Memory Management,AMM) . 如果 DBA 真的想偷懒的话,只需要设定两个参数就可以把烦心的事情都...
  • 联想昭阳E46G笔记本识别4G内存问题

    千次阅读 2018-12-11 13:29:43
    为了流畅运行win7,添了一根2G内存,和原来的2G组成双通道4G,提升性能。但都安好后,win7 64bit版的系统,仍然只认出2.9G,网上有的说是32位系统问题,有的说是msconfig引导问题。都试了遍,仍没解决。 后来发现是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 706,368
精华内容 282,547
关键字:

内存g