首页 文章
  • 3 votes
     answers
     views

    内存分配给Spark中的执行程序和任务

    我的群集配置如下: - 7个节点,每个节点有32个内核和252 GB内存 . 纱线配置如下: - yarn.scheduler.maximum-allocation-mb - 10GB yarn.scheduler.minimum-allocation-mb - 2GB yarn.nodemanager.vmem-pmem-ratio - 2.1 yarn.nodemanager.resourc...
  • 3 votes
     answers
     views

    为什么UIAlertController用self创建一个保留周期?

    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"alert" message:nil preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *action = [UIAlertAction actionWithTitl...
  • 0 votes
     answers
     views

    关于Windows NT / 10上的可移植可执行文件分配的堆的方式和位置?

    我目前正在研究可移植可执行文件格式,并且've learned about the 9 common sections such as .code, .data, .rdata, .debug, and etc... However, one piece of information which seems to be obscure and absent from the papers I'已读...
  • 65 votes
     answers
     views

    String Literal Pool是String对象或对象集合的引用的集合

    看完SCJP Tip Line的作者Corey McGlone撰写关于javaranch网站的文章后,我感到很困惑 . 命名为Strings,Literally和SCJP Java 6程序员指南,由Kathy Sierra(javaranch的联合创始人)和Bert Bates撰写 . 我将尝试引用Corey先生和Kathy Sierra女士引用的关于String Literal Pool的内容 ...
  • 0 votes
     answers
     views

    使用String文字编译器行为来创建字符串常量池

    阅读完这些讨论后question 1,question 2,article 我对 Java String Constant Pool 有以下理解(请纠正我,如果我错了): 编译源代码时,编译器会在程序中查找所有字符串文字(放入双引号的字符串文字),并在堆区域中创建不同的(无重复)对象,并将其引用保存在名为String Constant Pool的特殊内存区域中(方法区域内的区域) . 在运行时创建...
  • 2 votes
     answers
     views

    使用结构上的getter方法的Rust借用问题

    我是Rust的新手,所以我仍然习惯于习惯语言的内存模型 . 因此,当我在结构上构建 getter 方法时,我遇到了错误 cannot move out of borrowed content. . 我无法弄清楚为什么会这样,但它似乎与Enum上的某些特征有关 . enum Gender{ Male, Female, } impl Default for Gender { ...
  • 26 votes
     answers
     views

    嵌入式系统上的malloc行为

    我试图了解当RAM满时 malloc() 如何在普通的 C 上行为 . 我的STM32有20kB = 0x5000Bytes的RAM,0x200用于堆栈 . #include <stdlib.h> #include "stm32f10x.h" struct list_el { char weight[1024]; }; typedef struct lis...
  • 2 votes
     answers
     views

    cudaMallocManaged vs cudaMalloc - 设备内存限制方案

    据我所知, cudaMallocManaged 通过消除主机和设备上显式内存分配的需要,简化了内存访问 . 考虑主机内存明显大于设备内存的情况,例如16 GB主机和2 GB设备,这些现在相当常见 . 如果我正在处理从外部数据源读取的大尺寸输入数据,例如4-5 GB . 我是否被迫采用明确的主机和设备内存分配(因为设备内存不足以同时容纳)或者CUDA统一内存模型是否有办法解决这个问题(例如,根据需要...
  • 2 votes
     answers
     views

    Fortran 77处理C内存分配

    我正在尝试编写一个使用数万行Fortran 77代码的C程序,但遇到了一些奇怪的错误 . 我将三个坐标(x,y,z)和三个向量的地址从C传递到fortran,然后让fortran对初始点运行一些计算并将结果返回到三个向量中 . 我在C函数中这样做几百次,保留该函数,然后再回来再做一次 . 它第一次完美地工作,但第二次通过它停止返回具有正x分量的点的有用结果(返回nan) . 最初它似乎是一个算法问...
  • 4 votes
     answers
     views

    QMenu中QAction的所有权

    我正在使用Qt为应用程序构建一个基本的GUI,我有几个问题 . 所以我创建了GUI,它运行正常,我想我会检查一些东西.. for(int i=0; i < 100000; i++) { menu = new QMenu(this); act = new QAction("About", menu); menu->addAction(act);...
  • 197 votes
     answers
     views

    @property在Objective-C中保留,赋值,复制,非原子

    作为Objective-C的新手,有人可以按照@property指令给我一个概述保留,分配,复制和我缺少的任何其他内容吗?他们在做什么,为什么我要用另一个呢?
  • 1 votes
     answers
     views

    类方法的EXC_BAD_ACCESS KERN_INVALID_ADDRESS

    我看到 EXC_BAD_ACCESS KERN_INVALID_ADDRESS 为类方法 . 根据我的理解,我不应该看到类/静态方法 . 我错过了什么吗? Stack Trace: 线程:崩溃:com.apple.root.user-initiated-qos 0 libobjc.A.dylib 0x0000000196eac0b4 objc_retain 20 1 $ APP_NAME 0x0...
  • 11 votes
     answers
     views

    Java:为什么它使用固定数量的内存?或者它如何管理记忆?

    似乎JVM使用了一些固定数量的内存 . 至少我经常看到参数 -Xmx (对于最大尺寸)和 -Xms (对于初始尺寸)表明这一点 . 我觉得Java应用程序不能很好地处理内存 . 我注意到的一些事情: 甚至一些非常小的示例演示应用程序也会加载大量内存 . 也许这是因为加载了Java库 . 但为什么需要为每个Java实例加载库? (这似乎是因为多个小应用程序线性占用更多内存 . 有关我描述此问题的...
  • 22 votes
     answers
     views

    了解JVM内存分配和Java内存不足:堆空间

    我正在研究真正了解内存分配在JVM中的工作原理 . 我正在编写一个应用程序,其中我将失去内存:堆空间异常 . 我知道我可以将诸如Xms和Xmx之类的VM参数传递给JVM为正在运行的进程分配的堆空间 . 这是问题的一种可能的解决方案,或者我可以检查我的代码是否存在内存泄漏并解决问题 . 我的问题是: 1)JVM如何为自己实际分配内存?这与操作系统如何将可用内存传递给JVM有何关系?或者更一般地说,任...
  • 4 votes
     answers
     views

    本机进程的Java内存使用情况

    调整使用Java编写的使用本机C库的服务器应用程序的最佳方法是什么? 该环境是一台32位Windows机器,内存为4GB . JDK是Sun 1.5.0_12 . Java进程在启动时被给予1024MB内存(-Xmx),但由于缺少堆空间,我经常看到OutOfMemoryErrors . 如果内存增加到1200MB,则由于缺少交换空间而发生OutOfMemoryErrors . 如何在JVM和本机...
  • 59 votes
     answers
     views

    64位JVM限制为300GB内存?

    我试图在集群计算环境(运行CentOS版本6.2 Final的IBM LSF)上运行Java应用程序,它可以为我提供高达1TB的RAM空间 . 我可以创建一个具有高达300GB最大内存(Xmx)的JVM,虽然我需要更多内容(如果需要,我可以提供详细信息) . 但是,使用Xmx选项创建具有超过300GB最大内存的JVM似乎是不可能的 . 更具体地说,我收到了经典的错误消息: 初始化VM时出错 . ...
  • 1 votes
     answers
     views

    MySQL总内存分配用量?内存泄漏?

    我正在使用5.6.21-70.0进行性能测试 . 当我跑 mysqlslap -a --concurrency = 40 - number-of-queries 1000 --iterations = 500 --engine = innodb --debug-info -utest -p 做一些性能测试,ram增长超过最大内存使用量,永不释放 当完成mysqlslap时,内存显示使用78...
  • 0 votes
     answers
     views

    RAM大小与虚拟内存之间的关系与JVM堆大小

    对于性能测试,我需要2 GB的堆内存,所以我通过“-Xmx2048m”在java设置中设置参数,并且还增加了虚拟内存......但是在运行应用程序时,它给出的错误就像“java run”时间环境无法加载“和”在同一进程中运行的几个JVM导致错误“,(实际上,对于超过1 GB的任何值,它不会给出相同的错误) . 那么可以将堆内存设置为2 GB吗?或者它最多只能1 GB?如果有,怎么办?我正在使用Wi...
  • 3 votes
     answers
     views

    复制到malloc()分配的全局内存?

    CUDA编程指南指出“通过 malloc() 分配的内存可以使用运行时复制(即通过调用设备内存中的任何复制内存功能)”,但不知何故,我无法重现此功能 . 码: #include <cstdio> __device__ int* p; __global__ void allocate_p() { p = (int*) malloc(10); printf("p = %...
  • 1 votes
     answers
     views

    构建基于软件的MMU和TLB

    我试图破解旧的unix内核 . 我只想用软件实现MMU和TLB . 有人可以告诉我在构建一个时使用的最佳数据结构和算法是什么 . 我看到很多人使用splay树,因为它很容易实现LRU . 有没有更好的数据结构?在软件中将虚拟转换为物理地址的最有效方法是什么 . 假设其x86架构和翻译为任何基本页面表转换 .
  • 12 votes
     answers
     views

    TLB是否会导致内存中的页面错误?

    在加州大学伯克利分校的John Kubiatowicz(Kuby教授)关于操作系统的视频讲座中,他提到TLB命中并不意味着相应的页面在主内存中 . 页面错误仍然可能发生 .从技术上讲,TLB是页表条目的缓存,因为所有页表条目都没有在主内存中提供相应的页面 . TLB也是如此 . TLB命中可能会导致页面错误 . 但根据教科书中给出的算法,我无法找到这样的案例 . 在TLB未命中内核上引用页表并...
  • 2 votes
     answers
     views

    转储x86 CPU的TLB缓冲区的内容

    是否有可能从TLB(转换后备缓冲区,这是CPU中的特殊缓存)获取翻译列表(从虚拟页面到物理页面) . 我的意思是现代x86或x86_64;我想以编程方式完成它,而不是使用JTAG并将所有TLB条目移出 .
  • 7 votes
     answers
     views

    TLB中的内核内存(虚拟地址条目)?

    Linux是操作系统,ARM是在此上下文中引用的处理器 . TLB是否包含内核和用户空间虚拟地址?内核内存从 0xc000_0000 开始并转到 0xFFFF_FFFF ,其中前3 GB属于用户空间 . 在进程之间的上下文切换之间,刷新TLB . TLB是否包含内核和用户空间虚拟地址? 内核内存(虚拟)直接对应物理内存(只需用 0xC000_0000 偏移即可为我们提供物理地址) . 是否有必要在...
  • 1 votes
     answers
     views

    根据高速缓冲存储器的虚拟地址到物理地址转换

    我确实理解如何将虚拟地址转换为物理地址以访问主存储器 . 我也理解缓存内存是如何工作的 . 但我的问题在于将两个概念放在一起并理解进程如何访问内存以及如果我们有缓存未命中将会发生什么 . 所以我有这个图,这将帮助我提出以下问题: click to see the image ( assume one-level cache) 1-进程是否使用表示主内存中字节位置的完全相同的物理地址访问缓存? 2-...
  • 428 votes
     answers
     views

    什么是专用字节,虚拟字节,工作集?

    我试图使用perfmon Windows实用程序来调试进程中的内存泄漏 . 这就是perfmon解释这些术语的方式: Working Set 是此进程的工作集的当前大小(以字节为单位) . 工作集是过程中线程最近触及的一组内存页面 . 如果计算机中的可用内存超过阈值,则即使不使用页面,页面也会保留在进程的工作集中 . 当可用内存低于阈值时,将从工作集中剪裁页面 . 如果需要它们,它们将在离开主存储...
  • 0 votes
     answers
     views

    从逻辑地址转换为物理地址 . 逻辑地址是十六进制

    如何将十六进制地址转换为物理地址来回答这个问题?我很困惑,由于语言障碍,我的老师没有帮助 . 假设逻辑地址空间为1KB,页面大小为16字节 . 假设最初没有页面在主存储器中用于该过程,并且使用纯需求分页 . 当前的空闲帧列表是 {2,5,8,1,...} . 无论何时需要,都将使用空闲帧列表中的第一帧 . 假设TLB有两个条目 . TLB和页表最初都是空的 . FIFO用作TLB替换算法 ....
  • 0 votes
     answers
     views

    虚拟地址空间是否驻留在虚拟内存中?

    虚拟地址空间是否驻留在虚拟内存中?我有一个混乱,每个进程都有自己的虚拟内存和页表,并在将虚拟地址加载到物理内存时从虚拟地址转换为物理地址,但虚拟地址空间在哪里出现?我已经浏览了许多操作系统书籍,但它到处都只是对特定词语的解释,而不是它所在的位置以及它们与它们如何运作之间的关系 . 请理论上解释一下,不需要例子 . 提前致谢 .
  • 4 votes
     answers
     views

    用于处理Linux内核中TLB未命中的调用图

    我试图了解linux内核如何处理TLB未命中 . 具体来说,我知道页表行走发生在 mm/memory.c mm/memory.c 中,但是当TLB未命中时,如何调用follow_page . 如何将follow_page的返回值( struct page )传递回硬件?有人可以说明TLB未命中处理的调用图,从硬件引发TLB Miss异常到调用 follow_page 时是什么时候? 我在内核代...
  • 25 votes
     answers
     views

    使用什么数据结构来实现动态内存分配堆?

    我总是假设heap (data structure)用于实现一个heap (dynamic memory allocation),但我've been told I'错了 . 通常情况下,如何实现堆(例如,典型的 malloc 例程或Windows的 HeapCreate 等实现的堆)?他们使用什么数据结构? 我不是要问: 在线搜索时,我已经看到了如何实施严格限制堆的描述 .仅举几例,我已经看到了...
  • 0 votes
     answers
     views

    可以有多个进程共享其堆内存吗? [关闭]

    据我所知,线程确实共享堆内存,但是不同进程也可以共享一个堆,默认情况下是否会发生? 如果没有,当一个人使用malloc,并且直到堆内存耗尽时,malloc操作是否只是返回堆中的下一个内存块?因为它显然没有分配因为只有一个进程可以访问堆,例如,假设堆内存中有1-10个地址,第一个malloc调用(3个字节)不需要搜索它刚刚分配的任何空闲内存1- 3地址并返回地址1,现在第二次调用也不需要寻找它刚刚返...

热门问题