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

nhibernate - Nhibernate 智能预取 1 to Many Scenario

我们正在使用具有流畅映射的 NHibernate 3.2。以下是高度可扩展的性能敏感系统中的简单一对多映射

当我们在几乎所有情况下从存储库中加载它时,我们只对由 CurrentChildID 定义的 Current Child 感兴趣,并且希望从数据库中一次性读取它以及根而不是其他 Child 记录。如果我们对剩余的孩子感兴趣,我们只需要加载 LastChildID 和 CurrentChildID 之间的记录 - 这样做的原因是我们可能有数百个孩子作为根,并且 LastChildID 之前的所有内容都将被标记为归档/数据仓库处理分开。

我们如何在 NHibernate 中配置预取。我们只是找不到一个例子。

0 投票
1 回答
3022 浏览

core-data - 多对关系的核心数据故障和获取

我有几个关于核心数据行为的“理论”问题,这些问题与一对多关系发生的情况以及何时依赖从父实体走关系以及何时应该构建新的获取请求有关。它们都非常相关。

背景

假设有一个父实体RPBook,它与 具有一对多关系RPChapter。一本书有很多章节。逆向也在核心数据模型中设置。涉及手动排序关系的基本形式,因此RPChapter实体具有chapterIndex属性。我在这里没有使用 iOS5 的新有序关系(也与这些问题无关)。

要访问书中的章节,可以使用chapters关系访问器:

使用/设置

在 iPhone 应用程序中,我们将从显示RPBook实例列表的表格视图开始。相应的章节不会作为支持 table view 的 fetched results controller 的 fetch 规范的一部分被预取,因为这些章节还不需要。

我现在选择其中一个RPBook实例,我被带到一个新页面,并且我RPBook的视图控制器中有这个实例引用,它没有chapters预取它。

filteredSetUsingPredicate:问题1:立即调用chapters关系

如果我想通过直接使用的chapters关系进行过滤filteredSetUsingPredicate:,考虑到我没有预先获取我正在查看RPChapter的当前的所有相关实例,它是否还能可靠地工作?RPBook换句话说,是否filteredSetUsingPredicate:会在该关系中的所有对象的幕后触发故障以执行其操作,或者它是否会误导性地仅根据哪些章节已经发生在内存中(如果有的话)给我结果?

如果我没有一本书的大量相关章节,我应该allObjects先调用它吗?IE

而不仅仅是:

问题2:批量检索一本书的所有章节

如果我有一个RPBook实例,但没有与之相关的预取实例,我如何强制使用该关系RPChapter一次性获取一本书的所有章节?chapters这样做[myBook.chapters allObjects]还是我仍然可以从那个电话中得到故障?

根据上面的问题 1,我希望 Core Data 能够完成批次中的所有故障,而不是跳闸故障,RPChapter因为这会影响在关系上使用的filteredSetUsingPredicate:行为chapters

我必须诉诸明确的获取请求来执行此操作吗?我是否应该重新获取RPBook我已经拥有的,但这次,在获取请求中的请求,所有相关的章节也可以使用来获取setRelationshipKeyPathsForPrefetching:

最后一个选项对我来说似乎很浪费,b / c我已经有一个范围关系,从概念上表示RPChapter我感兴趣的所有实例的子集。尽可能地,我想只走对象图。

问题3:同一线程上RPChapter实例的NSFetchedResultsController

设置 在这种情况下,我有一个RPBook实例,但没有与之相关的预取RPChapter实例(但它们确实存在于 Store 中)。在同一个视图控制器中,我也有一个实例NSFetchedResultsController (FRC)RPChapter范围仅限于同一本书。所以这是同一个线程,同一个托管对象上下文。

RPChapterFRC 中的实例是否与我从中检索的实例对应的内存中的对象相同,RPChapter共享myBook.chapters相同ObjectID?换句话说,运行时是否曾经使用内存中的不同物理对象ObjectID从同一线程中的同一 MOC完成托管对象请求?

问题 4:NSFetchedResultsController在托管对象内部安装一个为关系查询提供服务的设计模式

chapters我正在尝试通过使用我的自定义托管对象子类中提供的内置关系来决定是否应该能够为内容经常更改的关系(在我的示例中的书中的章节)提供服务查询RPChapter,或者是否可以从设计/架构的角度来看,将一个FRC实例RPChapter安装到RPBook托管对象类上,以有效地为有关该书中章节的查询提供服务。

如果我可以仅依赖chapters访问器,这显然会更干净myBook,但是在存在大量目标实体的一对多关系的情况下,这里的 FRC 似乎实际上可能更具性能和效率。

这是矫枉过正还是合理使用 an以不同方式FRC查询 anRPBook的章节?不知何故,感觉就像我错过了简单地遍历对象图的机会。我希望能够相信当我加载我的实例时chapters关系总是最新的。RPBook

0 投票
1 回答
302 浏览

c++ - Windows XP 在 C++ 启动时读取文本文件的速度较慢;预取?

我有一个用 C++ 编写的应用程序,Visual Studio 2005 专门在 Windows XP 中运行。当应用程序启动时,它会读取大量 (> 20000) 包含 XML 的文本文件 (.nfo)。每个文件为 800 字节。

冷重启后启动应用程序时,读取文件需要 10 分钟。但是,如果我关闭它并重新启动它,只需 10 秒即可读取它们。如果我进行热重启,也需要 10 秒。如果我使用 cacheset 实用程序清除缓存,读取文件也需要 10 秒。如果我冷重启电脑,2小时内不要触摸电脑,启动应用程序,仍然需要10分钟才能启动。

我使用标准库(std)中的基本函数来打开/读取/关闭文件。

我相信问题不直接来自应用程序的实现,而是来自 Windows XP。

我目前的重点是 Windows XP 的 Prefetcher。我的应用程序有一个位于预取目录中的 .pf 文件。但是,我的 .nfo 文本文件都没有位于要预取的文件列表中。例如,在与 Internet Explorer 关联的预取文件中,可以看到其图片等临时文件都列在了预取文件中。我相信如果我可以强制我的文件出现在该列表中;对它们的打开/读取操作会更快,因为 Windows 已经知道它们在磁盘上的位置。

为什么我的文件没有与我的 DLL 一起位于 .pf 预取文件中?文件出现在预取文件中的条件是什么?

这有意义吗?

我还想知道是否有办法强制 Windows XP 预先获取完整目录或文件列表?

这是与计算机一起销售的已经商业化的产品。因此,我们拥有调整操作系统的完全权限。但是,我们不打算对我们的应用程序进行极端更改。

问候

0 投票
2 回答
1292 浏览

html - 知道在 Firefox 中何时发生预取

有什么方法可以查看 Firefox 中何时发生预取?在 Chrome 中有一个内部任务管理器,它显示网站何时在后台预渲染 Firefox 预取有什么类似的吗?

0 投票
2 回答
299 浏览

c++ - 如何搭建应用层预取系统

我正在从事具有以下情况的 C/C++ 混合项目。

我需要进行迭代以逐个遍历文件中的非常小的块(也很少是较大的块)。理想情况下,我应该只连续阅读一次。我认为在这种情况下将一大块读入缓冲区并稍后使用它是一个更好的解决方案,而不是在我需要时立即读取它们中的每一个。

问题是,如何平衡缓存大小?有没有我可以利用的知名算法/库?


更新:(更改标题)

谢谢你们的回复,我知道我们的盒子里有不同级别的缓存机制。但就我而言,这还不够。

我想我在这里错过了一些重要的事情。实际上,我正在现有框架上构建一个应用程序,在该框架中,频繁地向引擎请求读取对我来说成本太高。(是的,我相信引擎确实利用了操作系统和磁盘级别的缓存。)我正在尝试做的确实是构建一个应用程序级别的预取系统。

想法?

0 投票
2 回答
1934 浏览

prefetch - 无法禁用硬件预取器

我正在尝试禁用硬件预取器以在 Intel core i5 2500 上运行一些内存基准测试。问题是我的 BIOS 中没有任何选项可以启用或禁用预取器。所以我试图使用 msr-tools 来禁用预取器。但是 msr-tool 无法将某些特定值写入所需的寄存器 (0x1a0h)。

这对所有 cpu 都是一样的。但是,如果我尝试写入值 0x850088(仅选择用于测试),它将成功写入该值。

谁能指出问题出在哪里以及解决方案是什么?

我也觉得奇怪的是我的 BIOS 中没有预取器禁用选项。这是某些版本的 BIOS 的情况吗?

谢谢。

0 投票
2 回答
15433 浏览

c - 为 x86-64 预取数据以缓存

在我的应用程序中,有一次我需要对一大块连续的内存数据(100 MB)执行计算。我的想法是继续预取我的程序将来会触及的块的一部分,这样当我对该部分执行计算时,数据已经在缓存中。

有人可以给我一个简单的例子来说明如何用 gcc 实现这一点吗?我在某处读过_mm_prefetch,但不知道如何正确使用它。另请注意,我有一个多核系统,但每个核心将并行处理不同的内存区域。

0 投票
1 回答
1176 浏览

html - html5 链接预取是否会影响 Google Analytics?

html5 链接预取属性是否会导致在 Google Analytics 中的预取页面上计算访问?

<link rel="prefetch" href="http://someurl.com/page.htm" />

这个关于跟踪预取 AJAX 内容的 SO 问题类似,但该<link>标签是没有任何 Javascript 的浏览器解释,它是按浏览器实现的。

我正在开发具有逻辑上一页和下一页内容的网站。该应用程序通过网站、培训课程或在线手册依次浏览。

0 投票
1 回答
79 浏览

image - 由于动态图像加载而错误地计算对话框位置?

我正在开发一个画廊类型的应用程序 - 一个模板将一个弹出对话框放在一起,以便在单击时查看缩略图的更大视图。图像的服务器路径作为模板变量包含在内。

除了第一次加载图像外,这非常有效。对话框已构建并显示,但在将 html 字符串附加到 dom 时,它缺少图像。它引起的问题是定位对话框:

对话框位于屏幕中间,如下所示:left = window.width /2 - dialog.width/2

但由于图像不存在,因此 dialog.width 变量不正确。同样,这仅在第一次单击缩略图时发生,我猜图像已缓存以供后续单击。

这会通过以某种方式预取图像来处理吗?如果是这样,是否需要将它们附加到 dom 才能被缓存,或者我可以将它们加载到数组中吗?

非常感谢 !

0 投票
3 回答
3616 浏览

javascript - Rel PreRender/PreFetch,它执行 JS 吗?

如果我在页面上有 Javascript 进行预渲染/预取(例如 Google Analytics JS),预渲染/预取是否会在页面上执行 Javascript?或者它会延迟 JS 的任何执行,直到用户实际请求页面?