问题标签 [prefetch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1621 浏览

x86 - x86 上跨页面边界的软件预取

我的理解是硬件预取永远不会跨越页面边界。我想知道软件预取是否具有相同的限制,即我可以使用软件预取来避免未来的 TLB 未命中。通过四处搜索,这似乎是可能的,但我在文档中找不到任何确定的东西,所以参考会很好。

我对 Nehalem、Sandy Bridge 和 Westmere 特别感兴趣。

0 投票
2 回答
2009 浏览

uitableview - 使用两个 NSFetchedResultsController 从 CoreData 获取大量数据

我正在尝试使用 NSFetchedResultsController 从 UITableView 中的 CoreData 获取 10000 条记录,并尝试使其尽可能快(因为请求具有排序描述符,因此获取这么多数据需要更长的时间)。

我正在尝试使用第一个和主要 NSFetchedResultsController(在表的委托方法中使用)从 CoreData 获取 100 条记录,这些记录显示在表上,而在另一个队列中,我在 viewDidAppear 中开始另一个获取 auxiliarFRC 上的所有 10000 条记录。在 AuxFRC 中的提取结束后,我将 AuxFRC 分配给主 FRC,以便传输所有记录并重新加载表。

我的问题是 UITableView 卡在第一个加载的行,直到 AuxFRC 结束提取,即使我分派 performFetch,我也不明白为什么会发生这种情况,或者如果这种方式是错误的,还有什么其他方式可以用来获取 10000 条记录如果数据发生变化并保持最新状态?

0 投票
3 回答
12820 浏览

html - 在 HTML 中设置新的预渲染或预取的正确方法是什么?

打开页面时,https ://www.apple.com/ 会在不同的浏览器上进行预渲染和预取。单击文档时,我希望预渲染和预取另一个页面https://www.apple.com/ipad

看来我们有两种方法可供选择。我们可以替换当前 2 个link元素中的 URL。或者我们可以在元素中插入 2 个新link元素head

在 HTML 中设置新的预渲染的正确方法是什么?

在 HTML 中设置新预取的正确方法是什么?

我试图在 Chrome 上将 prerenderlink元素的 URL 从https://www.apple.com/替换为https://www.apple.com/ipad。我打开了 Chrome 的任务管理器,发现https://www.apple.com/ipad没有被预先设置。唯一的预渲染页面仍然是https://www.apple.com/。所以看来这种方法行不通?

0 投票
2 回答
667 浏览

html - 我们如何查看预渲染资源或预取资源是否在 Firefox、Safari 和 IE10 上实际预渲染或预取?

假设我们有上面的代码。https://www.apple.com/在 Chrome 上预渲染。如果我们打开 Chrome 的任务管理器,我们可以看到这一点。这很不错。

我怎么知道https://www.apple.com/是否真的在 Firefox 上预取?Firefox 是否为此提供了解决方案?

我如何知道https://www.apple.com/是否在 Safari 和 IE10 上实际预取或预渲染?这两个浏览器是否为此提供了解决方案?

谢谢!

顺便提一句。Safari和IE10选择哪种方式?预渲染还是预取?

0 投票
1 回答
217 浏览

php - 使用 PHP 和 jQuery 预取内部页面

我正在尝试为我正在构建的 ModX Revo 网站构建自己的预取器。

我现在Syntax Error<script type="text/javascript">线了

我怎样才能让它正常工作?

我将它包含在我的页面/模板中<script type="text/javascript" src="/prefetcher.php"></script>

这是代码:

观察 FireBug,对 prefetch.php 的请求以正确的内容类型返回...

0 投票
1 回答
789 浏览

c++ - Visual Studio C/C++ 是否支持自动软件预取?

IntelIBM 的 xlc等编译器可以自动插入数据预取指令。

我有一些代码可以以牺牲可读性为代价进行预取。也就是说,有一个自然的代码分组,例如

memset 导致的缓存未命中成本可以通过在过程中进一步推动分配并在之后立即发出预取指令来减轻,在它和 memset 之间有足够的指令以便有时间将数据带入缓存。在我的情况下,计算 medium_size 的代码在过程中进一步推高时会变得有点混乱,使其可读性降低。

如果编译器可以为我重新安排代码以使预取值得(也许在PGO的支持下),那么我可以两全其美。

到目前为止,Visual Studio 似乎只支持内在函数,即手动放置预取指令。我错了吗?


针对问题的澄清更新:

问:编译器如何改进上述代码?答:上面的代码只是为了说明所涉及的内容。实际代码更复杂,但归结为分配和存储。读取是由 memset 在写入内存时完成的。在某些架构上,这可能不会触发缓存未命中,但在 x86 上它显然会触发(根据 vTune)(由下面的 markgz 回答)。

问:仅仅使用 memset 还不够吗?memset 的内存访问模式是高度可预测的,硬件预取机制应该处理它。答:是的,总的来说这是真的,我在解释更多上下文方面做得很差。包含 memset 的例程 (foo) 被非常频繁地调用,它是 memset 触发缓存未命中的第一次内存访问。memset 没有足够的数据通过预取来改善这种缺失,所以我需要在调用 memset 之前进行预取。

0 投票
1 回答
409 浏览

php - 在动态生成的页面上预取图像

HTML5 Prefetching 是一个很棒的工具,过去它在浏览图片库时为用户提供了更好的用户体验。不过,在这种情况下,我似乎无法让我的图像正确预加载。当我在 Chrome 开发工具中查看网络选项卡时,我看到 GET 请求已处理,但在状态下它们被列为(已取消)& 类型为“待处理”。

知道为什么这些请求会被取消吗?

我正在使用基本的 PHP for 循环来遍历 JSON 数组以检索您可以在此处看到的图像路径:

以下是上述循环运行时返回的示例:

0 投票
0 回答
1004 浏览

listener - ActiveMQ,prefetch=0 的消费者,增加控制台中的“入队”计数(因为轮询?)

使用 Spring 配置的 ActiveMQ,监听器配置了 prefetch=0 connectionFactory 和 5-5 并发,我们看到监听器显然轮询新消息而不是代理推送消息,正如预期的那样。

但是,在我们队列的“Active Listeners”的 ActiveMQ Web 控制台中,我看到“Enqueues”列计数持续快速上升(大约每秒 1 个)。这是正常行为吗?既然我们有 prefetch=0,这是否只是反映了侦听器对新消息的每次轮询?当没有实际消息正在工作时,队列显示出越来越多的 Enqueue 计数似乎有点奇怪。还想知道是否有办法限制轮询频率,或者在每个消费者轮询代理以获取新消息之前有一些延迟。

控制台的图片,显示了 prefetch=0 时每个消费者不断增加的 Enqueue 计数,即使没有消息可以工作:

http://activemq.2283324.n4.nabble.com/file/n4666021/enqueues.png

0 投票
2 回答
3976 浏览

c++ - 如何预取不常用的代码?

我想将一些代码预取到指令缓存中。代码路径很少使用,但我需要它在指令缓存中,或者至少在 L2 中,因为它在极少数情况下使用。我提前通知了这些罕见的情况。_mm_prefetch 是否适用于代码?有没有办法在缓存中获取这个不经常使用的代码?对于这个问题,我不关心可移植性,所以即使 asm 也会这样做。

0 投票
1 回答
869 浏览

javascript - 使用 javascript 进行 DNS 预取

我正在用 javascript 更改 dns-prefetching href。我想知道它是否有效。我有 2 个网站共享相同的 javascript。

所以我做这样的事情: