问题标签 [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 回答
2053 浏览

c++ - C++ 内存映射文件数据预取

我正在处理非常大的内存映射文件(200+ GB),这些文件无法完全加载到内存中,并且可以随机访问。映射文件存储在固态驱动器阵列上,但我仍然发现一次访问所需的部分非常慢,除非之前已经完成了相同的搜索,并且使用的页面已经被读入内存。

添加多个线程同时读取 mmap 中的变量可以显着提高速度,并且我无法达到测试改进的上限,但是超过 1000 个线程会导致 openmp 抛出资源不可用错误。

我还尝试过 madvise 向内核建议将需要的特定部分(MADV_WILLNEED),但内核似乎没有足够快地按照建议采取行动以产生影响。

我正在寻找一种在实际使用之前同时预取所需数据部分的方法。读取变量(或包含它的映射文件的内存页面大小的片段)强制它进入内存而不阻塞读取的最不占用资源的方法是什么。

如果无法避免阻塞,那么运行大量非常轻量级的线程来进行读取的方法也可以。

0 投票
3 回答
75370 浏览

django - 为什么 django 的 prefetch_related() 只适用于 all() 而不是 filter()?

假设我有这个模型:

现在,如果我想有效地查看相册子集中的照片子集。我这样做是这样的:

这仅执行两个查询,这是我所期望的(一个获取相册,然后一个像`SELECT * IN photos WHERE photoalbum_id IN ().

一切都很好。

但如果我这样做:

然后它会用WHERE format = 1! 我做错了什么还是 django 不够聪明,无法意识到它已经获取了所有照片并可以在 python 中过滤它们?我发誓我在文档的某个地方读到它应该这样做......

0 投票
1 回答
1228 浏览

python - 缓存或预取 Django 的反向关系

考虑一个带有 Publishers 表和 Books 表的 shema,这样

在我的模板中,我希望显示某些出版商及其所有书籍的列表。在我的视图功能中,我使用类似的东西获取所需的发布者

然后在我看来,我遍历 publishers 和 publishers.book_set.all 一样

这按预期工作,只是它显然像无数次一样击中数据库。

如何优化代码以使 django 只访问 db 一次或两次?

0 投票
2 回答
4414 浏览

cuda - 在 cuda 中预取(通过 C 代码)

我正在通过 C 代码在 CUDA (Fermi GPU) 中进行数据预取。Cuda 参考手册讨论了 ptx 级代码而不是 C 级代码的预取。

谁能将我与一些文件或有关通过 cuda 代码(cu 文件)预取的东西联系起来。任何帮助,将不胜感激。

0 投票
0 回答
284 浏览

caching - fread 使用预取吗?如果是这样,它如何处理一致性问题?

我对 fread 的行为有疑问。fread 来自 stdio.h

我做了一个实验,如果我 fread(2KB),那么 strace 日志显示有一个 read()=4KB。因此,这意味着 fread 使用了“预取”,或者至少四舍五入到 4KB。但是,如果 fread 使用预取并在库级别缓存数据,那么在程序使用“预取”数据之前,可能会被其他程序修改,而 fread 可能不知道这种修改,这将导致不一致的问题.

那么, fread 到底是做什么的呢?fread 是否有汇总、预取和库级别的 fread 缓存?如果它使用了预取,它如何处理不一致问题?

谢谢。

0 投票
0 回答
124 浏览

html - HTML 预取是否也会开始下载流媒体内容?

预取是构成 HTML5 的新标准之一。您可以将其添加到这样的标签中:

我的问题:

  1. 如果您尝试预取带有流数据的页面(例如 Youtube)会发生什么?视频会开始缓冲吗?
  2. 内容是什么(例如 Flash 与 HTML5 视频)是否重要?我问这个是因为这个常见问题解答提到只有 HTTP/S 会被预取。
0 投票
1 回答
948 浏览

cuda - 通过预取内在函数改进 CUDA SDK matrixMul

这是 CUDA SDK (2.3) matrixMultiply 内核的一部分:

此版本的矩阵乘法将切片带入共享内存并在共享内存带宽上执行计算。我想通过将下一次迭代的数据预取到 L1 缓存中来提高性能。我按照这里的建议使用预取内在函数,并将以下命令插入到PREFETCH BLOCK上面:

经过测试,两个版本(有或没有预取)执行非常相似(平均 3 次运行):

没有预取: 6434.866211(毫秒)

预取: 6480.041016(毫秒)

问题:

我希望看到预取的一些加速,但我对结果感到困惑。任何机构都有理由说明为什么这两个实现非常接近?也许我正在执行错误的预取。

先感谢您。

更多信息:

显卡:特斯拉 C2050

CUDA 版本:4.0

0 投票
1 回答
197 浏览

html - 我应该使用预取还是下一步?

有些人可能知道,FireFox 可以选择预取网页。

现在来自文档:

现在据我了解,您预取的任何内容都将被预取,但是我应该何时使用预取 rel 以及何时使用下一个?

这意味着在尝试预取多个资源时,我的所有链接会是什么样子?

0 投票
4 回答
20466 浏览

c++ - C ++如何强制预取数据进行缓存?(数组循环)

我有这样的循环

需要检查预取数据如何影响效率。如何在计算之前强制将某些值从内存中预取到缓存中?

0 投票
1 回答
606 浏览

c - 如何更改此 C 代码以预取一些数据?

我做了一个检查矩阵效率的应用程序。我使用各种方法(例如更改循环、2/3 循环、openmp 等)。剩下一件事:我必须检查数据预取。

代码:

通常单独处理prefetch数据(当我们在单行并递增时j),但并非总是如此(例如tab[0][0]从不prefeched或当我们转到下一行时(loop i++ ,tab[i][0]))。在我们计算它们之前,如何更改此代码以帮助proc prefetch来自tab[0][0], tab[1][0],tab[2][0],tab[3][0]等的数据?