- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近偶然发现了两种可能的 rasterOptions
,它们可以提高 R 中光栅操作的性能:chunksize
和 maxmemory
。然而我很困惑有什么区别。帮助页面指出:
block 大小:在处理(逐 block )基于磁盘的 Raster* 对象时,单个 block 中读/写的最大单元数。
maxmemory:读入内存的最大单元数。即,如果 Raster* 对象的单元数超过此数量,则 canProcessInMemory 将返回 FALSE。
根据我的理解,它们都是相同的,至少我无法通过定义弄清楚它们有什么区别以及它们如何相互影响。 IE。低 chunksize 与高 maxmemory 值相结合?
最佳答案
这些选项是栅格包中的帮助程序,通常不需要调用,除非您正在编写用户定义的栅格写入函数。
如果您的栅格无法读入 R,即在 canProcessInMemory
返回 FALSE 的情况下,您需要逐 block 读取栅格。如果这样做,您将提供 block 的大小,该大小由完整行的整数值决定,这些行将一次读取一个(或并行)。
您应该在一个 block 中读取多少行? blockSize()
帮助您确定这一点。
r <- raster(system.file("external/test.grd", package="raster"))
blockSize(r)
与writeValues()
结合使用,您可以手动将栅格对象的值逐 block 写入更快的RasterBrick
类对象或对象RasterLayer
类,更加灵活。
默认值最多读取 1e8 个单元,这会导致不同的内存分配,具体取决于光栅单元的位数。如果您拥有大量内存,则可以通过增加最大内存量来获得良好的性能提升,并且拥有更多内存的返回会增加。
增加 block 大小并没有那么有值(value),因为增加 block 大小会降低性能。通过增加 block 大小,您将获得一些性能提升,但这并不那么重要。
虽然增加 block 大小有边际 yield ,但同时增加最大内存大小可能是一个坏主意,因为您通过在单个计算中执行此操作将整个栅格强制放入内存,这可能会触发canProcessInMemory
失败,这将停止栅格的处理,关闭连接,并吐出一些临时文件。
一个好的经验法则是减少 block 的大小以避免任何问题(直到一个限制 - 也许 1e5,你可能永远不会遇到任何问题)并牺牲一点性能,但为了尽可能增加最大内存(1e9 左右,具体取决于您的设备有多少 RAM)。
最后,有一个nice vignette关于为太大而无法容纳在内存中的栅格对象编写自定义函数。
关于光栅选项 : Difference between chunksize and maxmemory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38368939/
我正在尝试在我的 Rails 应用程序的 cache_store 配置中设置 maxmemory 和 maxmemory-policy。 我在 production.rb 文件中做了以下操作: r
1) 为不同的 Redis 层设置 MaxMemory-Reserved 配置的理想值是多少?我们有什么建议/指导可以引用吗? 2) 以下哪一个是更好的方法: ->为Redis缓存中的所有对象/键实现
我正在我的本地机器上试验 redis 3.0 逐出策略——我想限制最大内存,这样 redis 就不能消耗超过 20 兆字节。 我的配置: loglevel debug maxmemory 20mb m
我最近偶然发现了两种可能的 rasterOptions,它们可以提高 R 中光栅操作的性能:chunksize 和 maxmemory。然而我很困惑有什么区别。帮助页面指出: block 大小:在处理
我运行了以下方法 Runtime.getRuntime().maxMemory()并给了85196800。 但是,我随后从命令行运行 top,它显示 PID USER PR NI V
我运行了以下方法 Runtime.getRuntime().maxMemory()并给了85196800。 但是,我随后从命令行运行 top,它显示 PID USER PR NI V
我在 docker 中将 redis 与 image: redis:5.0.3 一起使用,我时常需要面对所有 key 。我试图弄清楚发生了什么。首先检查 maxmemory-policy 和 maxm
Runtime.getRuntime().maxMemory() 显示哪个内存?是 Survivor 、 Eden 、 Old 、 Permanent 吗? 最佳答案 它是堆的最大大小。它松散地基于
在 documentation for Java's Runtime class它指出: Returns the maximum amount of memory that the Java virt
我原以为 Runtime.maxMemory() 会准确返回 -Xmx,但它返回的值较低。那么它返回什么? 最佳答案 The interpretation of the -Xmx flag is VM
我们在 Redis 服务器中设置了 120 GB 的最大内存。 所以在信息输出中 used_memory 总是小于等于 120GB 但 used_memory_rss 是~140GB 谁能解释一下这是
Redis 具有以下设置: “配置获取最大内存” 1) "maxmemory" 2) "2147483648" (也就是2G) 但是当我执行“信息” used_memory:6264349904 us
代码如下: System.out.println("Runtime max: " + mb(Runtime.getRuntime().maxMemory())); MemoryMXBe
这个问题在这里已经有了答案: What are Runtime.getRuntime().totalMemory() and freeMemory()? (7 个答案) 关闭 5 年前。 Runti
我正在尝试在 redis 中插入键-“值”。“值”是 X 字节,同时将我的应用程序插入到 redis 中。我想知道在从 ./redis-cli 触发“INFO”命令后要监视哪个参数以检查 X(或者 X
哪些 maxmemory 策略与 redis 过期机制兼容? 它只是volatile-ttl吗? noeviction 会阻止旧记录死亡吗? 最佳答案 从这里查看redis.conf : MAXMEM
有人可以澄清 maxmemory-policy 是否适用于 HashSets 吗?比方说,我有一个名为 REGION 的键,在该键下我有多个键值数据: 1) northamerica 12345 2)
因此,我试图通过Celery上传一个文件,该文件在我的Heroku网站上使用Redis。我正在尝试上传.exe大小的20MB类型文件。 Heroku在他们的爱好中说:dev部分,可以上载的最大内存是2
我正在尝试将一些大型 csv 文件加载到 redis 中。我收到内存 > 'maxmemory' 错误。但是,当我检查我的数据库的使用情况时,它说 used_memory_human:4.63M us
我正在尝试找出在以下情况下“maxmemory”的安全设置是什么: 编写繁重的应用程序 8GB 内存 假设其他进程占用大约 1GB 这意味着redis进程的内存使用量永远不会超过7GB 每个 BGSA
我是一名优秀的程序员,十分优秀!