腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
1
回答
为什么Firefox在Linux上有一个空的堆?malloc在内存中的位置是什么?
、
、
mm_struct的start_brk和brk字段对于火狐有相同的值,这意味着堆在火狐中是空的。有人知道吗:为什么Firefox在Linux上有一个空堆?malloc在内存中的位置是什么?
浏览 4
提问于2012-04-22
得票数 1
回答已采纳
1
回答
Windows堆栈和堆地址范围
、
、
、
、
在使用Linux之前,堆栈地址非常高,而堆地址非常低(从使用C程序打印堆和堆栈地址可以看出),我对Win32进程内存布局有一个问题。MWSDN是说堆栈地址比堆地址高,但从我在实践中看到的情况来看,堆栈地址比堆地址低。所以我很困惑。谁来解释一下。
浏览 1
提问于2012-08-13
得票数 1
1
回答
Windows可执行文件结构
、
、
我知道目标文件通常有代码、数据、堆和堆栈部分。 但我想知道这在windows可执行文件和Linux可执行文件中是如何安排的。 我在网上搜索了一下,发现了一些结构。 我知道.text是用于代码的,而.data是用于全局变量的。 我想知道在Linux和Windows平台上是不是都有堆栈和堆? 谁能告诉我可执行文件的结构?? 先谢谢你...
浏览 1
提问于2011-08-17
得票数 3
回答已采纳
1
回答
ARM Linux如何维护段?
、
Linux通过MMU将平面虚拟地址转换为物理地址。在Linux的虚拟地址空间中,有许多类型的段: 核空间 用户堆栈 内存映射区域 用户堆 Bss段 数据段 文本段 Linux如何维护这些段(也就是部分)?这些段的基本地址和大小存储在哪里?内核中的寄存器、GDT/LDT、mm_struct或其他数据结构? 感谢你的帮助。
浏览 1
提问于2015-07-23
得票数 0
回答已采纳
1
回答
堆的界限是什么?
、
、
、
、
在给定进程中堆的界限是什么?我知道这个问题可能没有简单的答案,所以我对以下几个问题的答案感兴趣: 在AMD64上Linux下有64位进程的标准堆大小/位置吗? 如果我正在实现语言运行库,如何才能找到不允许放置堆的地方(同样,Linux/a 64) 对于一个应用程序来说,是否有一种可移植的方法来找出它的起点/终点?
浏览 1
提问于2014-02-18
得票数 11
1
回答
如何只跟踪子目录中的.config文件,这些子目录是工作目录中的直接附件?
、
我正在尝试创建一个.gitignore文件,该文件应该只跟踪以“linux”开始的目录中的".config“文件,而”linux“是工作目录的直接附件。我不想跟踪"linux-“目录中的任何其他文件或子目录。例如:我不想跟踪“/linux-4.2-blah/foo/..config”,只跟踪“/linux-4.2-blah/..config”,只跟踪名为".config“的文件。我尝试了以下和其他一些变体: * !/linux-*/ /linux-*/** !/linux-*/.config 但是当我运行"sudo git“时。它还包括例如。 "linu
浏览 2
提问于2020-02-08
得票数 0
2
回答
GOMAXPROCS是如何在不同的平台和容器内确定的?
、
、
我很好奇Go运行时如何在各种不同特性的平台上(如Linux、macOS和macOS)确定macOS(计数CPU)? 例如,在Linux上:我很好奇它是使用sysfs (/sys)来查看路径(比如/sys/fs/cgroup/cpu/cpu.cfs_quota_us )来确定存在多少CPU,还是使用procfs (/proc/cpuinfo) (在容器环境中,容器访问CPU的权限可能比文件中公开的主机CPU数量少)是错误的。 类似地,在macOS上,这个值是如何确定的? 我知道一些应用程序(如JVM )依赖于在/sys上公开的cgroup内存信息来设置它们的内部堆大小等。
浏览 2
提问于2019-01-15
得票数 1
回答已采纳
2
回答
Java堆转储权限
、
、
、
、
在Linux机器(很可能还有Unix机器)中生成的java堆转储具有受限的访问权限。堆只能由进程的所有者读取(ACL掩码设置为600)。我理解这是出于安全原因。然而,我找不到任何引用或解释该行为的文档。谁能给我指一指文档(如果有)?另外,有什么方法可以覆盖这个行为吗?
浏览 0
提问于2012-10-05
得票数 9
1
回答
reactor.netty.ioWorkerCount不同的默认计数
、
、
根据netty文档,默认的reactor.netty.ioWorkerCount计数是max(4核数),这在本地环境中似乎是正确的。我有一台6核心的笔记本电脑,反应堆的数量-http-io线程是6。 但是,在kuberenetes中部署docker映像时,我们发现反应堆-http (linux)线程计数为36。我们的CPU配置是:请求4,限制6。 在的一篇评论中,@ROCKY也提出了这一疑问。它似乎仍然没有答案。 那么,有什么可以解释这种行为的吗?
浏览 8
提问于2022-02-11
得票数 0
5
回答
Linux中C++的类层次结构/依赖图生成器
、
、
在Linux中有没有什么工具可以通过检查C++代码来生成类层次结构/依赖关系图? 我有一大堆C++文件给我,这样的工具将是无价的,可以帮助我理解源代码。我对它的理解有点纠结。
浏览 3
提问于2011-12-15
得票数 17
回答已采纳
1
回答
关于glibc堆保护机制的信息?
、
、
、
、
是否有任何关于glibc采取哪些措施来使基于堆的攻击更加困难的信息?我在几个Linux发行版的安全特性列表页面上听说过一些类似PTR_MANGLE和一些模糊的“堆一致性检查”之类的东西,但我还没有找到关于这些机制是如何实际实现的详细信息,如果它们是有效的,以及它们包含哪些漏洞类别。即使按名称搜索提到的特性,我也找不到任何关于它们的glibc文档。 那么,实现了哪些功能,它们的工作效果如何?glibc是否有类似于堆栈上的堆栈粉碎保护器的堆一致性检查机制?PTR_MANGLE是“加密”所有指针,还是只加密其中的一部分?最重要的是,这些功能是否可以由最终用户打开,或者它们是否依赖于正在使用的特定AP
浏览 0
提问于2016-12-10
得票数 1
3
回答
Linux堆-执行大量的新/删除是正常的,还是堆变得非常碎片化?
、
、
、
、
我不熟悉Linux堆是如何分配的。 我每秒多次多次调用malloc()/free(),总是使用相同的大小(大约有10个结构,每个结构的大小都是固定的)。除了init时间之外,我的内存都没有长时间被分配。 对于标准堆,这是否被认为是糟糕的形式?(我相信有人会问“你用的是什么堆?”--“呃,标准静态堆”..meaning我不太确定。) 我是否应该使用空闲列表,或者堆是否可以容忍大量相同的分配。我试图在可读性和性能之间取得平衡。 有什么工具可以帮我测量吗?
浏览 1
提问于2011-08-28
得票数 6
回答已采纳
2
回答
如何使用gdb检查RTEMS应用程序的堆和堆栈?
、
、
、
是否有一种方法可以使用gdb准确地知道RTEMS应用程序上堆和堆栈的地址范围?我知道Linux上有info proc mappings,但我不认为RTEMS有一个/proc。使用x检查内存是很好的,但我需要知道两者的地址范围。 我知道中有一些贴士,但他们自己也承认这些都是粗略的估计。
浏览 1
提问于2014-06-01
得票数 2
回答已采纳
1
回答
用户进程在linux上的堆栈位置范围
、
在Linux中,在启用ASLR的情况下,是否存在用户堆栈地址所在的一系列地址?堆,指令地址(文本部分)呢?一般来说,是否可以查看一个地址并判断它是用于数据还是用于代码? 我正在尝试编写一个Pintool,它在返回后查看EIP,并检查EIP是否指向数据区域。让我们假设这个系统上没有启用NX。
浏览 0
提问于2018-05-06
得票数 3
回答已采纳
2
回答
Java内存泄漏是否可能使用比heap + permgen更多的内存?
、
、
、
在任何情况下,Java应用程序(例如Tomcat servlet应用程序)中的泄漏是否可能超出分配的内存并使用额外的系统内存,或者为JVM分配的堆是否真的从( OS/Kernel内存的其余部分)设置了防火墙(可以这么说)?我使用的是带有Java 6和7的2.6内核Linux,但这更像是一个一般性问题。
浏览 2
提问于2014-04-05
得票数 3
1
回答
为什么在Linux中信号依赖于平台?
、
、
、
、
手册页声明: 每个信号的数值在下表中给出。如表所示,许多信号在不同的体系结构()上具有不同的数值。 ..。 确实如此。在Linux内核源代码中,我们可以确保f.e。使用 -这里有一堆用于不同架构的signal.h文件。 那么,如果它是操作系统级的,并且与硬件没有明确的关系,那么为什么会有这样的平台依赖呢?为什么Linux不能在所有受支持的平台上平等地处理它? 这个帮不上忙。
浏览 1
提问于2019-12-09
得票数 3
回答已采纳
1
回答
可以在内存空间的中间处理插入内存页吗?
、
、
、
、
蒸馏情景: 用户空间程序需要数百万页大小的结构(即大多数Linux系统需要4k )。它还需要快速随机访问结构。有时,程序需要在数组中间插入新的结构。秩序很重要。 struct { char data[PAGE_SIZE]; } page_sized_t; size_t N = 1 * 1000 * 1000; size_t X = INSERT_INDEX; 程序可以通过拥有一个包含指向堆分配结构的指针的堆分配数组来实现。可以使用realloc和memmove实现Insert。 struct page_sized_t **array = malloc( sizeof(array[0]) * N
浏览 3
提问于2016-07-07
得票数 0
回答已采纳
1
回答
现代Windows/Linux系统如何被Chrome中的堆溢出所破坏?
、
、
维基百科关于堆溢出的文章指出: 主要有三种防止堆溢出的方法。一些现代操作系统,如Windows和Linux,提供了这三种操作系统的一些实现。 通过分离代码和数据来防止有效负载的执行,通常具有现代系统上的NX位等硬件特性。 引入随机化,以便在固定偏移量处找不到堆。 将健全检查引入堆管理器。 有了这些保护措施,最近发现的通过Chrome PDF阅读器堆溢出的漏洞怎么会发生呢? 只需查看包含嵌入式jpeg2000映像的PDF文档,攻击者就可以在受害者的系统上实现任意代码执行 来源:谷歌浏览器中的PDFium漏洞
浏览 0
提问于2016-06-13
得票数 2
回答已采纳
2
回答
进程的内存量是如何确定的?
、
、
、
、
据我所知,当一个进程正在执行时,它有一定数量的内存可供使用。随着堆栈大小的增加,它从进程的一端构建(忽略位于堆栈之前的全局变量),而堆则从另一端构建。如果您不断地添加到堆栈或堆中,最终所有内存都将在此过程中耗尽。 如何确定进程所占用的内存量?我只能想象这取决于一堆不同的变量,但一个尽可能通用的响应将是很好的。如果必须具体说明,我对用C++编写的linux进程很感兴趣。
浏览 1
提问于2011-06-18
得票数 4
2
回答
向堆中添加java ClassLoaders而不是perm gen
、
、
在允许垃圾收集之前,我们有一个生成数千个和类的应用程序。我们非常肯定没有类加载器泄漏,但是我们得到了permgen错误(即使存在,这个问题与任何潜在的泄漏都是正交的)。 是否有任何方法可以指定某些ClassLoaders及其加载的类放置在堆中,而不是放在perm中? 我们在Linux上使用Oracle JDK Java 6。 编辑:看起来Java8将不再有PermGen了。它将被Metaspace取代。
浏览 2
提问于2013-03-20
得票数 0
2
回答
虚拟内存中的malloc函数
我读取malloc函数在堆上分配内存,堆驻留在OS(Linux)中的虚拟内存中。所以我对此毫不怀疑: 如果进程使用malloc分配的内存,则终止或退出本身而不释放内存。该内存是否会在终止后被操作系统释放,就像它在虚拟内存中一样? 我如何知道Linux操作系统中的堆大小? 如何在Linux操作系统中更改堆大小?
浏览 3
提问于2013-06-27
得票数 1
3
回答
使用Valgrind抑制Qt内存泄漏的文件
、
、
、
、
我通常用C++编写类,并在Linux平台上使用valgrind检查它们是否有内存泄漏。在释放所有堆内存之前,我不会感到满意。 开始在Qt中编写,我发现valgrind检测到了多少个泄漏,也是在一个简单的项目中。它们太多了,很难检测到我同样的漏洞。 我在某个地方读到,可以使用valgrind的抑制文件来帮助过滤掉不需要的泄漏,但我找不到它。 我使用的是Ubuntu11.04 x64,g++ 4.5,Qt4.7。有人知道如何处理这个问题吗?
浏览 1
提问于2012-02-07
得票数 9
回答已采纳
1
回答
多线程Linux进程的地址空间布局
、
、
、
、
我想知道64位和32位多线程Linux进程的地址空间布局的全部细节。链接到任何描述它的文章将不胜感激。请注意,我需要知道全部细节,而不仅仅是概述,因为我将直接处理它。因此,例如,我需要知道线程堆栈位于何处、堆、线程私有数据等。
浏览 1
提问于2011-07-06
得票数 6
2
回答
如何使用.bash rc文件为linux中的java增加堆空间
、
、
、
当我在linux服务器上运行我的java代码时,我得到了下面的异常。java.lang.OutOfMemoryError: Java堆空间 你能告诉我在linux服务器中克服的方法吗? 如何在linux服务器上使用.bashrc文件来增加java堆空间? 提前谢谢。
浏览 0
提问于2013-03-22
得票数 1
1
回答
虽然堆保持不变,但是Java增加了吗?
、
、
、
可能重复: 在我的应用程序中,我将文档上传到服务器,服务器会对其进行一些分析。 今天,我使用jconsole.exe和堆转储来分析我的应用程序,因为我试图找出是否存在内存问题/内存泄漏。我想我可能会受到影响,因为在应用程序运行时,我的应用程序在RAM上有了很大增长。 当我在运行后用j控制台观察堆/ codecache / perm gen等内存时,我惊讶地看到了以下内容: 图片链接: 正如您在右边的j控制台中所看到的,当我做与分析相关的事情时,堆正在增加,但是当工作结束时,堆也会再次减少到它的正常大小。在左边,您可以看到部署应用程序的服务器的"htop“。它就是这样
浏览 2
提问于2012-06-13
得票数 1
回答已采纳
1
回答
Ubuntu升级到2.6.32-2*内核后的错误显示
、
我运行的Ubuntu9.10(业力考拉)没有任何问题。我最近升级到Ubuntu 10 (Lucid ),不能正常使用它。登录后,屏幕会乱七八糟(紫色/绿色杂乱)--不可能看到任何东西,尽管我可以通过标记屏幕上的点来重新启动,这样Linux就可以在幕后工作。 如果我开始使用基本图形的恢复模式,我没有任何问题(除了有限的功能)。如果启动旧的2.6.31-22内核,我会在启动脚本中看到一堆“不可装载的”错误,但我可以正常使用Linux,不会出现明显的问题。我正在运行一个带有ATI移动图形的IBM ThinkPad A30。再重申一遍,在我登录之前,屏幕看起来很正常,这时屏幕就疯狂了。 我需要改变什么
浏览 0
提问于2011-01-14
得票数 1
1
回答
在数据结构上,普通堆和二进制堆有什么不同?
、
据我所知,二进制堆是一种采用二叉树形式的堆数据结构,因此二进制堆是一种特殊的堆。但是堆(一个普通堆)的定义是什么呢?
浏览 1
提问于2017-07-21
得票数 1
1
回答
测试我自己的服务器
、
、
我有一堆旧的,各式的服务器。我想测试,压力测试和收集从他们所有的硬件信息,然后把他们放到测试实验室环境。我也希望能够比较这些服务器之间的结果。我可以在Linux上安装什么工具来执行上面的任务? 我使用过硬信息,但它没有能力将统计数据与我自己的机器进行比较。 问候
浏览 0
提问于2013-10-08
得票数 3
3
回答
不同的程序是从公共堆还是从单独的堆中获取内存?
、
、
我有点困惑,linux上的glibc如何将其内存分配给各种program.These是几个问题: 它是从公共堆(即linux中的所有进程都有一个公共堆)分配的,还是为系统中的每个进程分配了一个堆。 另外,假设我正在编译一个静态库,它最终被静态地链接到主进程,它将如何获得它的内存?它是否已经链接到其他堆(就像我们已经编译过的那样),还是将从主进程的堆中获取内存。
浏览 3
提问于2011-08-31
得票数 9
回答已采纳
4
回答
增加堆栈大小以使用alloca()?
、
、
、
、
这是两个重叠的问题-我希望对大型数组尝试alloca(),而不是在堆上分配动态大小的数组。这是为了在不进行堆分配的情况下提高性能。然而,我得到的印象堆叠大小通常是相当小的?为了充分利用alloca(),增加堆栈的大小有什么缺点吗?我拥有的RAM越多,我可以按比例增加堆栈大小? EDIT1:最好是Linux EDIT2:我的脑海中没有一个特定的大小-我更愿意知道如何判断是什么决定了限制/边界。
浏览 12
提问于2013-03-26
得票数 5
回答已采纳
1
回答
与Linux上静态C运行时的共享库和可执行链接。它们中的每一个都像Windows一样有单独的堆吗?
、
、
、
、
关于窗口堆分配和堆堆栈等,我很清楚。虽然我对Linux还不熟悉,但我不太清楚它是如何工作的? 在Windows上: 在进程开始时,操作系统创建一个名为进程堆的默认堆。如果没有使用其他堆,则进程堆用于分配块。 语言运行时还可以在进程中创建单独的堆。(例如,C运行时创建自己的堆。) 除了这些专用堆之外,应用程序或许多加载的动态链接库(DLLs)中的一个还可以创建和使用单独的堆,称为私有堆。 这些堆位于所有虚拟内存系统中操作系统的虚拟内存管理器之上。 ( a) C/C++运行时(CRT)分配器:提供malloc()和free()以及新操作符和删除操作符。b)作为初始化的一部分,C
浏览 1
提问于2014-04-04
得票数 1
2
回答
Java的内存无限期增长,但是MemoryMXBean报告了稳定的堆和非堆大小。
、
、
、
我正在与一个团队合作,开发一个运行在1GB Linux目标系统上的Java应用程序。 我们有一个问题,就是java进程使用的内存无限期增长,直到Linux最终终止java进程。 我们的堆记忆是健康和稳定的。(我们已经对堆进行了广泛的分析)我们还使用MemoryMXBean来监视应用程序的非堆内存使用情况,因为我们认为问题可能就在那里。然而,我们看到的是报告的堆大小+报告的非堆大小保持稳定。 下面是一个示例,说明在我们的目标系统上使用1GB内存运行应用程序时( MemoryMXBean报告的堆和非堆,使用Linux的顶级命令(驻留内存)监视的Java进程使用的总内存): 在启动时: 提交20
浏览 4
提问于2016-08-24
得票数 15
1
回答
使用文件名将exif日期添加到jpeg
、
、
、
、
我有一堆(大约1200个) jpg/jpeg文件,它们的文件名模式为:#.jpg或.jpeg。他们都没有任何exif数据。我想(批处理)添加exif日期(创建、修改、.)使用文件名中的日期模式。时间对我来说真的很重要。 我已经搜索了这个(和其他)论坛,但我找不到任何与将这些日期添加到jpeg文件有关的内容。我希望这里有人能帮我。 编辑:使用Linux (Mint 17,1)
浏览 6
提问于2014-12-28
得票数 3
3
回答
为什么内存是以堆的形式组织的?
、
、
内存中至少有一部分是由new/malloc创建的,它是以堆的形式组织的。我知道堆是这样一种结构,即父节点总是大于或小于它的子节点。它要么是最大堆,要么是最小堆。 对于内存组织来说,构建堆的关键价值是什么?换句话说,对于哪种类型的信息或值,我们遵循堆构造规则(最大/最小堆)? 最后,使用堆模型来组织内存的优势是什么?有没有很好的例子或理由?
浏览 1
提问于2015-03-01
得票数 4
1
回答
堆数据结构的确切定义是什么?
、
维基百科()给出的堆的定义是 在计算机科学中,堆是一种基于树的专门数据结构,它满足堆属性:如果A是B的父节点,则键(A)相对于键(B)排序,并在堆中应用相同的顺序。父节点的键总是大于或等于子节点的键,最高的键位于根节点(这种堆称为max堆),或者父节点的键小于或等于子节点的键(min堆)。 这个定义并没有说明树是完整的。例如,根据这个定义,二叉树5 => 4 => 3 => 2 => 1,其中根元素为5,并且所有后代都是正确的子级,也满足堆属性。我想知道堆数据结构的精确定义。
浏览 2
提问于2012-10-16
得票数 6
回答已采纳
3
回答
C++内存分配器体系结构
、
、
、
我需要在Linux下为C++编写存储分配器。虽然算法非常简单,但我不明白在哪里(以及如何)存储分配器数据(例如堆)。 这就是我的看法:分配程序不是一个进程,它是一组函数,任何应用程序都可以使用。每个应用程序都有自己的堆。 :在什么情况下,应用程序何时启动?和分配器如何发现堆已经创建?如何创建、存储和销毁(关闭应用程序时)堆?当函数被调用时,如何查找,如何查找它在哪个线程(或哪个处理器上运行)?
浏览 4
提问于2012-03-16
得票数 4
1
回答
数组支持的Java堆结构
、
、
、
、
我正在寻找优先级队列的堆结构,这些队列可以使用Object[]数组、而不是Node对象的来实现。 二进制堆当然工作得很好,n-ary堆也是如此。Java的java.util.PriorityQueue是一个二进制堆,使用Object[]数组作为存储。 还有很多其他堆,例如Fibonacci堆,但据我所知,这些堆需要使用节点来实现。从我的基准测试来看,我的印象是,管理所有这些节点对象所支付的开销可能会消耗掉所获得的所有好处。我发现很难实现一个可以与简单数组支持的二进制堆相结合的堆。 因此,我目前正在寻找高级堆/优先级队列结构,这些结构也没有使用Node对象的开销。因为我希望它在现实中快速,不仅仅
浏览 4
提问于2013-01-09
得票数 3
1
回答
编译Qt工程在Linux系统上运行
、
、
、
、
我有一个Qt项目。它使用跨平台库SDL、OpenGL和FLTK。我希望能够编译该项目,以便它可以在Linux计算机上运行。我正在看一堆文章,到目前为止,我已经看到了两种方法来做到这一点。使用交叉编译器,这在我看来是一个相当复杂的设置和编译的事情,或者,其他选择,是简单地在Linux计算机上编译项目,简单地说就是Qt creator/SDK的Linux版本。 我的问题是,如果我有一个只使用跨平台库的Qt项目,那么创建一个Windows版本就像在Qt/Windows中编译它一样容易,创建Linux版本就像在Qt/Linux中一样简单吗? PS。请不要问/抱怨为什么我不试着自己看看它是否工作,我现在
浏览 2
提问于2012-11-27
得票数 0
回答已采纳
1
回答
堆组织的表和“堆”数据结构
AFAIK,堆组织的表,在甲骨文和PostgreSQL中是默认的,只是没有任何聚集索引的表。 我想知道“堆”这个词是从哪里来的。这只是一堆数据,与“堆”数据结构无关,对吧?这只是另一个让我困惑的名字,它让我到处搜索数据库为什么使用“堆”。 它来自“堆”堆栈上的内存池吗?或者有什么历史/学术背景?
浏览 0
提问于2018-02-05
得票数 1
回答已采纳
1
回答
从堆中删除ith节点
我知道从堆中删除节点是发生在根目录上的O(log n)。我还知道,删除堆中的任意节点,堆中的堆树问题之一是O(n)。 是否有任何算法可以减少将Ith节点从max堆删除到从1到N的O(log n)的运行时间?
浏览 0
提问于2011-02-24
得票数 1
回答已采纳
2
回答
堆栈和堆内存是否实际实现为堆栈和堆数据结构?
、
、
、
、
我想知道堆栈和堆内存中提到的堆栈和堆是否实际上实现为堆栈和堆数据结构? 我认为堆栈实际上是一个具有指向函数中声明的LIFO ()变量的指针的堆栈,但是我想确认并询问堆是否与满足堆属性的动态树数据结构共享的不仅仅是它的名称?最近,我在堆栈和堆上读了很多书,并且相信我理解这个概念,但是它让我对实际的实现感到好奇。我想,在不同的体系结构上,它也可能是不同的,而且对于所有的计算机和操作系统,可能也没有一个具体的一般答案。 如果有人遇到这个问题,但仍然不知道堆栈和堆在哪里,那么请查看这个问题和我发现的在学习堆栈和堆概念方面有用的其他链接。
浏览 5
提问于2016-04-20
得票数 1
回答已采纳
3
回答
我如何实现一个纯函数的标准二进制堆(ocaml或haskell)?
、
、
有没有纯函数标准二进制堆的实现?我知道有很多有趣的堆,例如:二项式堆,左堆,它们都有函数实现,只是想知道有没有一种方法来实现标准的二进制堆,或者我们必须使用数组来实现它,因为它是不可变的类型?谢谢!
浏览 0
提问于2012-01-02
得票数 12
回答已采纳
1
回答
64位平台上GCC的基本堆使用统计
、
、
、
、
我需要从GCC为Linux编译的C程序中回答一个基本问题:当前有多少进程堆在使用中(由malloc分配),以及如果释放堆块的话有多少驻留。标准库的GNU实现有mallinfo函数,它准确地报告了我需要的东西,但是它只能在32位配置中使用,而且,AFAIK没有64位等效的功能(BTW,有人知道为什么吗?) 我在Linux上使用GCC,所以我需要这个Linux。但是我假设堆对系统是不透明的,所以回答这个问题的唯一方法是使用标准库的实现所提供的方法。 在Windows上的MSVC实现中,没有类似于mallinfo函数的功能,但是有所谓的堆走功能,它允许通过迭代堆中的所有块来计算所需的信息。AFAIK
浏览 6
提问于2010-05-09
得票数 8
1
回答
"setrlimit()“不会影响正在运行的进程
、
、
我正在尝试模拟Linux中进程的错误场景,堆不足以在C++ Linux应用程序中分配内存。但是,即使我使用"setrlimit“来减少可供进程使用的堆内存,堆内存仍然可以成功地分配。 struct rlimit the_limit = { 1, 1 }; if (-1 == setrlimit(RLIMIT_DATA, &the_limit)) { perror("setrlimit failed"); } try { char *n = new char[5600]; if (n==NULL) { cout <&
浏览 37
提问于2019-07-17
得票数 2
1
回答
在Solaris/Linux中释放分配的内存
、
、
、
我已经编写了一个小程序,并在Solaris/Linux平台上编译它,以测量将此代码应用于我的应用程序的性能。 程序就是这样写的,一开始用的是sbrk(0)系统调用,我取了堆区域的基址。之后,我使用malloc系统调用分配了1.5 GB的内存,然后使用memcpy系统调用将1.5 GB的内容复制到分配的内存区。然后,我释放了分配的内存。 在释放之后,我再次使用sbrk(0)系统调用来查看堆大小。 这就是我有点困惑的地方。在Solaris中,即使我释放了分配的内存(接近1.5 GB),进程的堆大小仍然很大。但我在Linux上运行相同的应用程序,在释放后,我发现进程的堆大小等于分配1.5 GB之前的
浏览 0
提问于2010-06-01
得票数 4
回答已采纳
1
回答
在哪里可以找到用于双点/路径遍历攻击的蜜罐的假层次结构?
、
、
当黑客尝试像GET /../../../etc/passwd这样的东西时,我想提供内容,但是他们可以选择其他的东西,而不是passwd。我会安装通知什么时候有人这样做,但为了让黑客的注意力在一个定点一段时间,我想有一些假的数据。 有人在起点上有建议吗?所有的数据都是静态的,我在想可能是linux目录结构,但最好是更轻的东西。如果你知道这样的事情,我会感兴趣的。它不需要是完整的,只需要包含一堆通常会在(Web)服务器上找到的文件。
浏览 0
提问于2011-12-29
得票数 1
回答已采纳
3
回答
STDOUT缓冲区在哪里?
、
正如我们所知,STDOUT在Linux中是缓冲的。我的问题是: 1)它是所有进程共享的全局缓冲区吗?还是每个进程一个缓冲区? 2)缓冲区在哪里?堆栈、堆或静态区域? 3)是谁创建的?
浏览 0
提问于2013-02-18
得票数 6
1
回答
内存中的段
、
、
、
我对RAM内存中的片段感到困惑,请澄清以下疑问 RAM被划分为用户空间和内核空间,这种内存划分是由O/S完成,还是由H/W(CPU)完成。 内核空间的内容是什么,据我所知,只有内核图像,如果我错了,请纠正我。 这些代码、数据、堆栈和堆段在哪里存在? ( a)用户空间和内核空间是否有独立的代码、数据、堆栈和堆段? ( b)这段是由H/W或(O/S)创建的。 我能找到内核空间和用户空间占用的内存量吗? ( a)是否有任何Linux命令(或)系统调用来查找? 为什么RAM被划分为用户空间和内核空间? 我觉得这样做是为了保证内核不受应用程序的影响,是吗?这是唯一的原因吗?
浏览 4
提问于2013-11-09
得票数 4
回答已采纳
1
回答
在不使用分段机制的情况下,如何在x86中管理堆栈和堆段?
、
、
、
从理解Linux内核开始 80x86微处理器中包含了分段,以鼓励程序员将应用程序拆分为逻辑相关的实体,例如子程序或全局和本地数据区域。然而,以非常有限的方式使用分段。实际上,分段和分页有些多余,因为两者都可以用于分离进程的物理地址空间:分段可以为每个进程分配不同的线性地址空间,而分页可以将相同的线性地址空间映射到不同的物理地址空间。Linux更喜欢分页而不是分段,原因如下: 当所有进程都使用相同的段寄存器值时,即当它们共享同一组线性地址时,内存管理就更简单了。 Linux的设计目标之一是可移植到广泛的体系结构;尤其是RISC体系结构对分段的支持有限。 2.6版本的Lin
浏览 8
提问于2022-02-13
得票数 0
3
回答
带有引用类型和GC的结构?
、
、
、
、
我在想, 类的一个实例在堆中。(堆中的值类型也在堆中)。 但相反的情况呢? 有一个问题,但它没有提到任何与GC相关的信息。 那么- GC是如何处理这种情况的? public struct Point { object o ; public int x, y; public Point(int p1, int p2) { o = new Object(); x = p1; y = p2; } }
浏览 3
提问于2012-07-25
得票数 5
回答已采纳
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
浅析Windows下堆的结构
C语言之算法与数据结构系列之探秘堆结构!
Linux 系统结构详解
数据结构与算法(4)——优先队列和堆
Linux 目录结构:/lib 分析
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
即时通信 IM
活动推荐
运营活动
广告
关闭
领券