- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是在solaris上运行后的结果,显示有两个堆,但在我的理解中,对于一个进程来说,只有一个堆是一个大的连续内存,可以通过brk管理来扩展或缩小大小。而对于匿名内存,一个进程可以拥有多个匿名内存,可以通过 mmap/munmap 进行管理。我的理解正确吗?或者我错误地读取了 pmap 的结果?
sol9# pmap -sx pgrep testprog
...
00022000 3960 3960 3960 - 8K rwx-- [堆]
00400000 131072 131072 131072 - 4M rwx-- [堆]
...
FF390000 8 8 - - 8K r-x-- libc_psr.so.1
FF3B0000 8 8 8 - 8K rwx-- [匿名]
...
总 Kb 135968 135944 135112 -
最佳答案
您既正确又误读了 pmap 输出。如果你做了 pmap -x
结果可能不会那么困惑,只显示一次堆,但是因为您添加了 -s
标志,它将堆分解为具有不同页面映射的段。
从 0x0022000 开始的地址没有正确对齐以映射到 4Mb 页,因此它们使用 3960kb 的 8k 页。 0x0022000+(3960*1024) = 0x00400000
在 0x00400000 处,地址正确对齐 4Mb 页,因此堆切换到使用具有较少页表条目的较大页。
如果你想确保你的堆以正确的对齐方式开始,以便为整个事情使用 4Mb 的页面而不是从 8k 开始直到它达到对齐边界,那么你可以将你的程序链接到 -M /usr/lib/ld/map.bssalign
要做到这一点。
更深入的解释可以在 Page Size and Memory Layout blog post 中找到。来自 Solaris Application Programming作者 Darryl Gove .
关于pmap结果中的堆VS匿名内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2151543/
user=> (.. Runtime getRuntime availableProcessors) 2 并评估此示例:http://clojuredocs.org/clojure_core/cloj
我正在尝试确定如何使用应用于不同长度列表的 dplyr pmap 函数。 下面是我想做的一个非常简单的例子 list_1 <- list(1, 2, 3) list_2 <- list(1, 2) l
我正在尝试使用 clojure pantomime 库从大量 tif 文档(以及其他文档)中提取/ocr 文本。 我的计划是使用 pmap 将映射应用于一系列输入数据(来自 postgres 数据库)
我正在尝试将一个函数映射到包含在使用 purrr::pmap 的数据框行。我有一个 reprex下面: library(tidyverse) # Create dummy data e [[1]]
我正在尝试确定如何使用应用于不同长度列表的 dplyr pmap 函数。 下面是我想做的一个非常简单的例子 list_1 <- list(1, 2, 3) list_2 <- list(1, 2) l
我为线程编写了一个简单的 C 程序,其进程图如下所示: anirudh@anirudh-Aspire-5920:~/Documents/DUMP$ pmap 3232 3232: ./a.out
我们正在发生某种巨大的内存泄漏,我们进程的驻留内存呈指数级增长。 pmap -x 显示如下内容: ... 00007f4ad85cd000 10530276 9129608 9129608 rw---
我只是使用 pmap 对 clojure 进行一些性能测试,我希望能够控制与 pmap 一起使用的线程数。我知道在使用 OpenMP 之类的东西时,可以使用 omp_set_num_threads()
我需要在 pmap 变体的帮助下执行一些按行的操作,但是在将参数列表(即“.l”参数)传递给嵌套在另一个函数中的函数。 我尝试了各种方法,包括传递参数名称和点语法,但都无济于事。我需要知道是否有办法做
当我有一个包含两个输入列(a 和 b)的列表列数据框 (df1) 时,我可以使用 map2 获取一个新列 d1 % slice(1:10) %>% group_by(cyl) %>% nest(.ke
使用 *apply 进行函数式编程或 purrr是我的面包和黄油但我不明白如何pmap处理函数参数。 我可以用他们对应的变量名 (给定一个数据框作为输入)并且不必担心顺序。 我可以更具体地使用它们作为
我需要发出200个左右的HTTP请求。我希望它们并行运行或成批运行,而且我不确定在Clojure中从何处开始执行此操作。 pmap似乎具有我想要的效果,例如,使用http.async.client:
我试图理解为什么这段代码有效: tmp % pmap(function(this, that, other) paste(this, that, other)) ...但以下代码会产生“未使用的参数”
我想知道如何使用 pmap()函数,如果我有超过 3 个输入作为参数映射到具有其他默认输入的函数。 这是一个可重现的示例: a=c(5, 100, 900) b=c(1, 2, 3) ablist=l
我有这个数据框,我想单独使用 pmap函数仅过滤所有值为负或正的行。我正在寻找一种简洁的方法来做到这一点,因为我想到了 c(...)但我们只能在函数内部使用它。 可以通过以下代码实现: df %
我正在使用 R purrr:::pmap带三个输入。不清楚如何在公式调用中明确引用这些输入?使用 map2 时,公式调用为 ~ .x + .y .但是使用pmap的时候怎么办? 从 http://r4
我正在尝试计算一个函数,其参数是数据框中列的名称。我需要循环每一行并计算函数。看起来 pmap 是执行此操作的一种巧妙方法,但我被迫指定“..1, ..2,”符号来指示数据框中的列位置。我认为这不是一
我想在传感器中使用 pmap,如果我使用常规 map 编写代码,它工作得很好。但是,如果我使用 pmap 我会得到一个 arity 异常。是否可以在 clojure 中实现此目的,或者我做错了什么?如
我正在尝试设置一个具有多个输入和多个返回值的自定义函数,并在数据框上将此函数与 purrr::map 一起使用。 我的示例数据是: test_data 1 1 2 3
我是 Erlang 新手,因此为了训练,我尝试从头开始实现标准功能。我尝试从 lists 模块创建 map/2 函数的并行实现。但我的实现速度非常慢。如果我在实现中犯了任何主要错误,您能指出我吗:
我是一名优秀的程序员,十分优秀!