- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有两个问题。其中一个将讨论这个话题:)
1) 我遇到了无法找到有关不同垃圾收集器在 HotSpot 中工作方式的完整信息的问题。但我不是在谈论垃圾收集器工作的一般描述(我们在互联网上有很多这样的信息),我在谈论具体的算法。我找到了这份白皮书(Java HotSpot 虚拟机中的内存管理)../../../technetwork/java/javase/tech/memorymanagement-whitepaper-1-150020.pdf .但它只有一般的想法。它对并行压缩算法(我的意思是并行标记-清除-压缩)有一个很好的描述(可能不太好 - 请参阅我的第二个问题),但它没有解释其他垃圾收集器的算法。然而,这份白皮书是我能够在 Internet 上找到的最好的信息。我想知道的是在哪里可以获得关于不同垃圾收集器(对于年轻一代我的意思是:ParNew、DefNew、PSYoungGen;对于老一代:PSOLdGen、ParOldGen、Concurrent-Mark-Sweep)如何工作的完整描述/信息。无法相信这些信息对用户不可用。
2) 关于Parallel Compacting Collector 算法(ParOldGen 或Parallel Mark-Sweep-Compact)的问题。白皮书(见第一个问题)描述了它的工作。让我引用白皮书中的一段话(请花点时间看一下):
我无法理解的地方如下:
Về总结阶段:
Due to compactions from previous collections, it is typical that some portion of the left side of each generation will be dense, containing mostly live objects. The amount of space that could be recovered from such dense regions is not worth the cost of compacting them.
好吧,这是否意味着当我们有一个区域由 98-99% 的 Activity 对象和 2-1% 的死对象组成(换句话说,死对象的比例非常小)而不是压缩该区域不值得从这样一个区域恢复的空间。然而,这个微小的空闲空间(空洞)最终会被填满,垃圾收集完成后将没有空洞。
So the first thing the summary phase does is examine the density of the regions, starting with the leftmost one, until it reaches a point where the space that could be recovered from a region and those to the right of it is worth the cost of compacting those regions.
好吧,如果我们有比这个区域大的死对象百分比,就值得压缩,对吧?
The regions to the left of that point are referred to as the dense prefix, and no objects are moved in those regions.
“并且这些区域中没有移动任何对象”,但是这些区域中可能有一些小的空闲空间,对吗?看不懂重点
The regions to the right of that point will be compacted, eliminating all dead space.
请说明它们将如何压缩。每个区域都将单独压缩?我觉得不是。那么也许这里会发生某种转变?
The summary phase calculates and stores the new location of the first byte of live data for each compacted region.
要理解它,我需要理解我想的上一个问题。
Về压缩阶段:
In the compaction phase, the garbage collection threads use the
summary data to identify regions that need to be filled, and the
threads can independently copy data into the regions. This produces a heap that is densely packed on one end, with a single large empty
block at the other end.
我完全糊涂了。所以在“总结阶段”没有发生压缩?上一阶段的目的只是为了找到所有空闲空间吗?
请帮我看清楚。
1 Câu trả lời
这只是对算法的一般描述。这样的描述可以有不同的细节。在这种情况下,它为您提供了大部分细节,但仍为实现者留下了一些选择。
关于您的问题:
所以在“总结阶段”没有发生压缩?前一阶段的目的是否只是为了找到所有空闲空间?
- 是的,这是正确的。摘要阶段收集索引数据并基本上确定所有必要的内容,以便压缩阶段可以执行复制。他们没有说明如何实现压缩,但默认方式只是将每个 Activity 对象紧挨着前一个对象放置。基本上,所有空白空间都被删除,压缩步骤完成后,您将拥有一个连续的内存块,其中包含所有 Activity 对象。我看到您对第四部分感到困惑,但请注意它是用将来时写的:“将被压缩”- 所以不是在总结期间,而是在以后。这是否意味着 [...] 该区域的压缩不值得从该区域恢复的空间?
是的,没错。您实际上会损失一些空间,但是为了执行速度而牺牲内存是很常见的。确切的密度阈值取决于实现,但我认为已用内存与总内存的比率阈值大约在 70-90%。如果您想了解所有细节,请查看评论中建议的开源 VM 实现。
关于java - 并行压缩收集器算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20430058/
我有点想做 the reverse of this. 我不想解压缩并将收集文件添加到 S3 应用户要求: 生成一堆xml文件 使用一些图像(托管在 s3 上的预先存在的图像)压缩 xml 文件 下载
将此添加到域的虚拟主机后 AddOutputFilterByType DEFLATE application/javascript text/javascript text/css 响应头不包含任何内
在 Apache Im 中,通过将以下内容添加到我的 .htaccess 文件来启用输出压缩: # compress text, html, javascript, css, xml: AddOutp
是否可以以压缩格式将请求数据从浏览器发送到服务器? 如果是,我们该怎么做? 最佳答案 压缩从浏览器发送到服务器的数据是不受 native 支持 在浏览器中。 您必须找到一种解决方法,使用客户端语言(可
我正在寻找可以压缩JavaScript源代码的工具。我发现一些网络工具只能删除空格字符?但也许存在更好的工具,可以压缩用户的函数名称、字段名称、删除未使用的字段等。 最佳答案 经常用来压缩JS代码的工
使用赛马博彩场景,假设我有许多单独的投注来预测比赛的前 4 名选手 (superfecta)。 赌注如下... 1/2/3/4 1/2/3/5 1/2/4/3 1/2/4/5 1/2/5/3
我是一名实习生,被要求对 SQL 2008 数据压缩进行一些研究。我们想将 Outlook 电子邮件的几个部分存储在一个表中。问题是我们想将整个电子邮件正文存储在一个字段中,然后又想压缩它。使用 Ch
我目前有一个系统,用户可以在其中上传 MP4 文件,并且可以在移动设备上下载该文件。但有时,这些视频的大小超过 5MB,在我国,大多数人使用 2G。因此,下载大型视频通常需要 15-20 分钟。 有什
假设我有一个带有类型列的简单文档表: Documents Id Type 1 A 2 A 3 B 4 C 5 C 6 A 7 A 8 A 9 B 10 C 用户
我有一个较大字符串中的(子)字符串位置的 data.frame。数据包含(子)字符串的开头及其长度。可以很容易地计算出(子)字符串的结束位置。 data1 start length end #>
我想知道是否 文件加密算法可以设计成它也可以执行文件压缩的事件(任何活生生的例子?)。 我也可以将它集成到移动短信服务中,我的意思是短信吗? 另外我想知道二进制文件...如果纯文本文件以二进制编码
đóng cửa. Câu hỏi này không đáp ứng được hướng dẫn của Stack Overflow. Hiện tại câu hỏi này không chấp nhận câu trả lời. Bạn muốn cải thiện vấn đề này? Cập nhật câu hỏi để nó phù hợp với chủ đề của Stack Overflow. Đã đóng cửa cách đây 7 năm. Cải thiện điều này
我们有几个具有大量 JavaScript 的 Java 项目,目前我们使用的是旧版本的 YUICompressor (2.4.2)。然而,我在这篇博文中发现 YUICompressor 正在 depr
从之前关于尝试提高网站性能的文章中,我一直在研究 HTTP 压缩。我读过有关在 IIS 中设置它的信息,但它似乎是所有 IIS 应用程序池的全局事物,我可能不允许这样做,因为还有另一个站点在其上运行。
我有一个 REST 服务,它返回一大块 XML,大约值(value) 150k。 例如http://xmlservice.com/services/RestService.svc/GetLargeXM
我正在尝试获取一个简单的 UglifyJS (v2.3.6) 示例来处理压缩。 具体来说,“未使用”选项,如果从未使用过,变量和函数将被删除。 这是我在命令行上的尝试: echo "function
我正在开发一个项目,如果我的磁盘出现问题,我将在使用 ZLIB 压缩内存块后将其发送到另一个磁盘。然后我计划下载该转储并用于进一步调试。这种压缩和上传将一次完成一个 block - 比如说 1024
LZW 压缩算法在压缩后增加了位大小: 这是压缩函数的代码: // compression void compress(FILE *inputFile, FILE *outputFile) {
我的问题与如何在 3D 地形上存储大量信息有关。这些信息应该是 secret 的,因为它们非常庞大,也应该被压缩。我选择了文件存储,现在我想知道将对象数据加密/压缩(或压缩/加密)到文件的最佳做法。
我使用以下代码来压缩我的文件并且效果很好,但我只想压缩子文件夹而不是在压缩文件中显示树的根。 public boolean zipFileAtPath(String sourcePath, Strin
Tôi là một lập trình viên xuất sắc, rất giỏi!