问题标签 [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.
c# - 使用 NHibernate 在单独的 SELECT 中急切地获取多个嵌套集合
我有以下数据库结构,我需要完全遍历它以获得报告。
我在Products
表上有一个查询,并且想要预取上述数据,因为我将一起访问它们。我想避免使用 JOIN,因为组合会爆炸并导致数据加载。
在我看来,理想的解决方案如下:
- 发出查询以加载所有匹配的产品
- 然后,根据类似于 ' 的查询解析结果集,并一起加载所有产品变体
Select * from ProductVariations where ProductId in ([all_product_id_set])
。 - 同样,这个结果集被解析,并且所有
ProductMediaItem
的都是使用类似于的查询来获取的Select * from ProductMediaItem where ProductVariationId in ([all_product_variation_id_set]);
- 等等等等
这将导致SELECT
每个不同的关联都有一个。因此,加载所有产品变体、它们的媒体项目和每个产品类别链接,以及它们各自的类别将导致 5SELECT
秒。
我尝试过使用criteria.SetFetchMode("ProductVariations", FetchMode.Select")
,但这无济于事。我目前的解决方法是使用批处理,但这仍然会导致大约 50 - 60 个查询来获取所有数据,虽然不是那么慢,但我认为它可以做得更快。
我正在使用最新版本的 NHibernate - 3.3。
更新 1
我想使用普通的 OOP 遍历集合,例如:
django - 多对多字段上的 Django prefetch_related 总是产生空数组
我在使用 Django 的 prefetch_related 时遇到问题。
这是我的模型。
这就是我使用 prefetch_related 时发生的情况。
知道我在这里做错了什么吗?
Python 2.7 版 Django 1.4 版 DB 后端:SQLite(我也尝试使用 MySQL,结果相同)
这里有一些查询调试(来自 IPython 控制台),所以你可以看到那里发生了什么。
c++ - 在此 C++ 代码中应用预取以查找最大值索引
以下代码在给定数组中查找最小值/最大值及其位置:
我想改进二维数组的代码并利用预取
所以我的数据现在是这样的:
在实际情况下,数据会更多。我真的会在这里获得预取的任何好处吗?如果是这样,我该怎么做?还有任何编译器指令可以指示编译器预取 A 中的数据吗?
编辑:
我需要整个二维数组的最大值以及相应的索引。将在 x86、Intel i3、Windows 7 上运行。
如您所见,在此代码中,我首先找到最大值,然后找到最大值的位置。有没有办法可以将这两个步骤的过程简化为单一的,从而加快这个过程?
更新: 我修改了此代码,使其一步处理数据,这与之前首先查找最大值然后查找索引不同。问题是如何使用预取来提高性能?
c++ - 如何禁用在 Windows MFC 应用程序中创建 .pf(预取)文件?
我正在编写一个 C++ MFC 应用程序。我想避免在程序执行期间在硬盘上写入任何数据。
当我打开我的应用程序时,Windows 会立即.pf
在目录中创建一个文件..\Windows\Prefetch\
。
我无法禁用负责预取 ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnablePrefetcher
) 的注册表值,因为我的应用程序必须在许多不同的机器上运行,并且一些用户甚至可能不知道如何运行 regedit。
您能否告诉我是否有任何选项可以禁用在我的应用程序中创建此文件?
caching - Backbone.Collection 预取和缓存
是否有任何推荐的库、模式或示例说明如何在 a 上实现预取和/或缓存Backbone.Collection
?例如,我想在具有不同视图模式(例如日、周、月)的日历中显示事件。我认为最好一次查询一次数据库/API,比如 1-3 个月,以避免太多的网络请求,即使我在周视图中也是如此。
然后我认为缓存接收到的数据是有益的(当用户不断分页时,它会更快),这很容易,但我还需要以某种方式确定要清除什么以及在什么时候清除。在 PHP 中有 PHP APC、XCache 等想知道 JS 中是否有类似的东西。还是我在服务器端这样做?对于工作,它是一个 Java 服务器,但我现在对 NodeJS 也很感兴趣
x86-64 - 预取写入是否会影响单核性能?
某些架构具有“预取写”指令,以在实际执行之前向 CPU 指示您将要写入内存位置。我知道在多核机器上,核心可以使用这作为提示,它现在应该尝试获取给定缓存行的所有权,以便以后可以更快地写入该位置。但是,AFAICT 仅在有两个内核可能竞争缓存线的情况下才有意义。对于仅由单个内核读取和写入的高速缓存行,预取写入是否有任何用处?
firefox - Mozilla Firefox 预取 rel="next"
Firefox 似乎会预取在元标记中设置的任何内容,如下所示:
更多信息可以在这里阅读:http: //developer.mozilla.org/en-US/docs/Link_prefetching_FAQ
现在在我的网站上,当有多个页面用于评论之类的内容时,我一直在使用 rel="next" 和 rel="previous",因为我认为这是很好的标记,可以用来帮助某些读者或搜索引擎机器人。
但是,我也一直在尝试跟踪用户阅读的最后一条评论是什么,但这并没有奏效(当您在一些简单的事情上花费数小时时的愚蠢时刻之一)。
基本上,例如,当用户阅读第 2 页(共 3 页)时,我会更新数据库以说明他们已阅读第 2 页,但未阅读第 3 页。但是,由于第 3 页被预取,该页面的代码运行并触发 SQL 更新即使用户从未真正阅读过第 3 页,该页面也是如此。
所以我真的有几个问题:
- 有没有办法在保持“下一个”和“上一个”标记的同时避免这种情况?还是只删除那些元标记更容易?
- 我应该知道并尝试处理任何其他形式的预取吗?
- 是否有一种特殊的方法可以判断某些内容是否只是预取,例如特殊的请求标头?
c++ - Visual Studio 2012 中的 _mm_prefetch 在哪里?
我想使用指令_mm_prefetch。MSDN指定它在头文件 mmintrin.h 中,但没有。我使用 Visual Studio 2012。
jquery - jQuery Mobile 自动预取页面
我需要在我的 JQM 项目中添加一个预加载页面。我认为最好的方法是在预加载页面上使用 JQM Prefetch 函数,并在加载预取(主页)页面后触发它。
这是正在使用的代码。我是否需要添加一个实例才能使其正常工作,因为我不确定在哪里添加 url(home.html)?任何帮助将不胜感激。谢谢你。
HTML
自定义.js
android - Android 预取 Webview
我正在为 Android 创建一个“每日 ....”应用程序。(比方说“每日鲜花”)这个想法是:你每天都会收到一个通知,当你点击它时,它会向你显示一张鲜花的图片+一些文字。我想从一个网站分发这个。
我可以使用执行 loadUrl 的 WebView 创建一个通知和一个 Intent 到一个活动。但是,这太慢了!(需要 1 到 5 秒,具体取决于网络。)
所以我想预取“整个站点”(1 个 HTML 文件,1 个图像),然后创建通知,以便应用程序可以快速显示每日鲜花。
这可以轻松完成吗?我可以用 HttpClient 等硬方式做到这一点,但我宁愿使用 WebView.saveState 之类的东西