问题标签 [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 投票
1 回答
1636 浏览

c++ - 当数据隐藏在对象中时如何使用英特尔预取杂注?

Intel 提供了一个 prefetch pragma;例如

a提前预取一定数量的循环周期,由编译器确定。

但是如果a不是一个数组而是一个[]被覆盖的类呢?如果operator[]做一个简单的数组访问,这种方式还可以使用预取吗?

(大概这个问题也适用std::vectors)。

0 投票
3 回答
200 浏览

html - 过度使用预取不好吗?

刚刚阅读这篇关于预取的文章,它指出:

当然,您必须小心(不要预取整个网站!)

我只是想知道,为什么?如果工作在幕后进行,为什么不让机器安静地收集您的整个站点呢?

我假设这只是为了不支配最终用户资源,但我错过了什么吗?

0 投票
2 回答
7185 浏览

html - 如何测试预取/预渲染

我已经开始使用预取/预渲染系统加载一些关键资源和页面。

有没有办法确保有问题的资源实际上是被预加载的?

0 投票
1 回答
127 浏览

io - 如何快速打开和读取 1000 多个文件

我的问题是应用程序加载数千个文件需要很长时间。是的,我知道这需要很长时间,但我想让它更快一点。我所说的“加载”是打开文件以获取它的描述符,然后读取它的前 100 个字节左右。

所以,我的主要策略是创建第二个线程来打开和关闭(不读取任何内容)所有文件。这似乎有帮助,因为线程在主线程之前运行,我猜操作系统会提前缓存这些文件描述符,这样当我的主线程打开它们时,它就会快速打开。这实际上有所帮助,因为当我的主线程正在解析从这些文件中读取的数据时,线程可以开始缓存这些文件描述符。

所以我真正的问题是......我还能做些什么来让它更快?有哪些方法?有没有人成功做到这一点?

我听说过操作系统预取调用,但它是针对虚拟内存页面的。有没有办法告诉操作系统,嘿,我很快就会需要所有这些文件 - 我建议你提前开始为我收集它们。我的前瞻线程非常粗糙。

有我可以使用的低级磁盘技术吗?是否有可能有帮助的文件访问模式?现在,加载的文件都来自同一个文件夹。我想没有办法确定它们在磁盘上的确切位置以及磁盘打开的文件顺序是最快的。我也猜想磁盘有一些硬件来尽可能提高效率。

我的应用程序主要用于 Windows,但 unix 建议也会有所帮助。

如果这有所作为,我正在用 C++ 编程。

谢谢,-朱利安

0 投票
3 回答
2913 浏览

cuda - Nvidia CUDA 中的预取

我正在研究 nVidia CUDA 中的数据预取。我阅读了一些关于设备本身预取的文档,即从共享内存预取到缓存。

但我对 CPU 和 GPU 之间的数据预取感兴趣。任何人都可以将我与一些文件或有关此事的东西联系起来。任何帮助,将不胜感激。

0 投票
1 回答
1987 浏览

nhibernate - 优化 NHibernate:从指定表中加载所有数据

场景:我构建了一个 ASP.NET MVC 应用程序来管理我的烹饪食谱。我正在使用 FluentNHibernate 访问下表中的数据:

  1. 用户
  2. 类别
  3. 食谱
  4. RecipeCategories (多对多连接表)
  5. UserBookmarkedRecipes (多对多联结表)
  6. UserCookedRecipes (多对多连接表)

问题:有什么方法可以告诉 NHibernate 从上面列出的所有表中加载所有数据并将其存储在内存中 / NHibernate 的缓存中,这样就不必有任何额外的数据库请求?


问题背后的动机:多对多关系的多样性带来了一个问题,并且将从该优化中受益匪浅。

数据注意事项:数据总量极少。我们目前谈论的食谱不到 100 种。

0 投票
1 回答
173 浏览

ajax - 在 Web 应用程序中,如何预加载一组任意文件以便在浏览它们时更快地查看它们?

假设我有一个包含两个窗格的 .NET Web 应用程序。一个窗格是能够显示各种大型文件类型的查看器。另一个窗格包含任意文件列表,例如 file1.docx、file2.xlsx、file3.pptx、file4.txt、file5.doc、file6.htm、file7.zxz、file8.exe 等。

用户能够选择列表中的任何文件,并在选择更改时将其显示在相邻的窗格中,大概是通过客户端 Javascript。鉴于用户已经选择了一些文件,例如 file1.docx,有没有办法在用户查看 file1.docx 时预取/预加载列表中的一些文件,例如 file2.xlsx 和 file3.pptx?

如果这可以通过类似 Ajax 的异步调用在后台完成,那么对于按顺序从一个文件到另一个文件的用户来说,应用程序会显得更快。我假设预取调用可能足够聪明,不会尝试请求无法查看的文件,例如 exe 文件。

任何帮助或示例将不胜感激。

0 投票
2 回答
4141 浏览

html - 使用 HTML5 预取的危险?

好的,所以这不是一个大问题,因为它仅受少数浏览器支持:

  • Mozilla Firefox:支持
  • Google Chrome:自版本 13 起受支持(使用替代语法)
  • Safari:目前不支持互联网
  • 资源管理器:目前不支持

但是,预取让我抽搐。如果用户登陆您的页面并跳转到另一个站点,您是否为他们访问您的预取链接的带宽付费?

开发人员是否存在预取页面上每个链接的风险,这反过来会使网站的用户体验变慢?

看起来它可以改变分析。人们会通过预取来强制用户浏览页面吗?

安全性,您不会知道正在预取哪些页面。它可以预取恶意文件吗?

对于使用受限的移动用户来说,所有这些预取操作会不会很痛苦?

0 投票
1 回答
262 浏览

iphone - UIWebView 是否自动预取页面?

UIWebView 是否自动预取页面?

这是我的情况:

主页是一个本地 HTML 文件,其中包含 3 个指向其他本地 HTML 文件的链接。在其中一个中,我有一个从 Internet 加载页面的 iframe。UIWebView 可以尝试以静默方式预取此页面吗?

我倾向于不,但我还没有找到明确的答案。

0 投票
2 回答
1068 浏览

prefetch - 寻找 ia32、ia64、amd64 和 powerpc 的预取指令的最佳等效项

我正在查看一些稍微混淆的代码,这些代码尝试使用各种编译器内置函数对预取指令进行平台抽象。它最初似乎基于 powerpc 语义,分别使用 dcbt 和 dcbtst 读取和写入预取变体(这两个都在新的可选流操作码中传递 TH=0)。

在 ia64 平台上,我们可以阅读:

而写:

这(读取与写入预取)似乎很好地匹配了 powerpc 语义(除了 ia64 允许临时提示)。

有点奇怪的是,有问题的 ia32/amd64 代码正在使用

不是

就像该代码与 ia64 实现一致(我们的(仍然活动的)hpipf 端口和我们现在死掉的 windows 和 linux ia64 端口的代码中的 #ifdef 变体)。

由于我们正在使用 intel 编译器进行构建,因此通过切换到 xmmintrin.h 内置程序,我应该能够使我们的许多 ia32/amd64 平台保持一致:

...只要我能弄清楚应该使用什么时间提示。

问题:

  • 是否有读取与写入 ia32/amd64 预取指令?我在指令集参考中没有看到任何内容。

  • nt1、nt2、nta 时间变化中的一个是否更适合读取与写入预取?

  • 知道是否有充分的理由在 ia32/amd64 上使用 NTA 时间提示,而在 ia64 上使用 T1?